From 0563022a206294757effa44686727bffc4f7c2bd Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Fri, 23 Mar 2012 15:19:26 +0000 Subject: [PATCH] Merge GNU Classpath 0.99 into libjava. From-SVN: r185741 --- libjava/ChangeLog | 34 + libjava/Makefile.am | 1 + libjava/Makefile.in | 16 +- libjava/classpath/ChangeLog | 1071 ++++++++ libjava/classpath/INSTALL | 9 +- libjava/classpath/NEWS | 50 +- libjava/classpath/config.guess | 433 ++- libjava/classpath/config.sub | 210 +- libjava/classpath/configure | 102 +- libjava/classpath/configure.ac | 6 +- libjava/classpath/depcomp | 74 +- libjava/classpath/doc/cp-tools.texinfo | 35 +- libjava/classpath/doc/texinfo.tex | 1916 ++++++++----- .../gnu/classpath/examples/swing/Demo.java | 4 +- .../gnu/java/security/Properties.java | 5 +- .../gnu/java/security/der/DERWriter.java | 8 +- .../gnu/java/security/hash/Whirlpool.java | 6 +- .../security/jce/sig/EncodedKeyFactory.java | 5 +- .../security/jce/sig/SignatureAdapter.java | 5 +- .../security/key/dss/DSSKeyPairGenerator.java | 5 +- .../key/dss/DSSKeyPairPKCS8Codec.java | 6 +- .../security/key/rsa/RSAKeyPairGenerator.java | 5 +- .../key/rsa/RSAKeyPairPKCS8Codec.java | 6 +- .../security/key/rsa/RSAKeyPairX509Codec.java | 6 +- .../java/security/pkcs/PKCS7SignedData.java | 5 +- .../gnu/java/security/pkcs/SignerInfo.java | 8 +- .../provider/PKIXCertPathValidatorImpl.java | 5 +- .../gnu/java/security/sig/rsa/EMSA_PSS.java | 5 +- .../security/sig/rsa/RSAPSSSignature.java | 5 +- .../gnu/java/security/x509/X509CRL.java | 6 +- .../gnu/java/security/x509/X509CRLEntry.java | 6 +- .../gnu/java/security/x509/ext/Extension.java | 5 +- .../gnu/javax/crypto/cipher/Anubis.java | 5 +- .../gnu/javax/crypto/cipher/BaseCipher.java | 5 +- .../gnu/javax/crypto/cipher/Khazad.java | 5 +- .../gnu/javax/crypto/cipher/Rijndael.java | 5 +- .../gnu/javax/crypto/cipher/Twofish.java | 5 +- .../cipher/KeyWrappingAlgorithmAdapter.java | 5 +- .../javax/crypto/jce/keyring/GnuKeyring.java | 5 +- .../jce/params/BlockCipherParameters.java | 5 +- .../javax/crypto/jce/prng/ICMRandomSpi.java | 5 +- .../javax/crypto/jce/prng/UMacRandomSpi.java | 5 +- .../crypto/key/dh/GnuDHKeyPairGenerator.java | 11 +- .../crypto/key/srp6/SRPKeyPairGenerator.java | 6 +- .../gnu/javax/crypto/keyring/Entry.java | 5 +- .../javax/crypto/keyring/EnvelopeEntry.java | 5 +- .../crypto/keyring/GnuPublicKeyring.java | 5 +- .../classpath/gnu/javax/crypto/mac/OMAC.java | 5 +- .../gnu/javax/crypto/pad/BasePad.java | 5 +- .../gnu/javax/crypto/pad/PKCS1_V1_5.java | 5 +- .../classpath/gnu/javax/crypto/pad/PKCS7.java | 5 +- .../classpath/gnu/javax/crypto/pad/TBC.java | 5 +- .../gnu/javax/crypto/prng/CSPRNG.java | 38 +- .../javax/crypto/sasl/SaslInputStream.java | 5 +- .../javax/crypto/sasl/SaslOutputStream.java | 5 +- .../gnu/javax/crypto/sasl/srp/SRPClient.java | 5 +- .../gnu/javax/crypto/sasl/srp/SRPServer.java | 5 +- .../javax/net/ssl/provider/CipherSuite.java | 109 +- .../provider/OutputSecurityParameters.java | 18 + .../javax/net/ssl/provider/SSLEngineImpl.java | 25 +- .../gnu/javax/print/PrinterDialog.java | 10 +- .../security/auth/login/ConfigFileParser.java | 8 +- .../auth/login/ConfigFileTokenizer.java | 11 +- .../security/auth/login/GnuConfiguration.java | 6 +- libjava/classpath/include/Makefile.am | 3 + libjava/classpath/include/Makefile.in | 3 + libjava/classpath/include/config.h.in | 3 + .../gnu_java_awt_peer_gtk_ComponentGraphics.h | 13 + ..._java_awt_peer_gtk_ComponentGraphicsCopy.h | 13 + ...nu_java_awt_peer_gtk_FreetypeGlyphVector.h | 11 + ...ava_awt_peer_gtk_GdkScreenGraphicsDevice.h | 7 + ..._java_awt_peer_gtk_GtkEmbeddedWindowPeer.h | 17 + .../gnu_java_awt_peer_gtk_GtkFileDialogPeer.h | 17 + .../gnu_java_awt_peer_gtk_GtkFramePeer.h | 17 + .../include/gnu_java_awt_peer_gtk_GtkImage.h | 11 + .../gnu_java_awt_peer_gtk_GtkVolatileImage.h | 17 + .../gnu_java_awt_peer_qt_MainQtThread.h | 7 + .../gnu_java_awt_peer_qt_QtButtonPeer.h | 3 + .../gnu_java_awt_peer_qt_QtCanvasPeer.h | 3 + .../gnu_java_awt_peer_qt_QtCheckboxPeer.h | 3 + .../gnu_java_awt_peer_qt_QtChoicePeer.h | 3 + .../gnu_java_awt_peer_qt_QtDialogPeer.h | 3 + ...nu_java_awt_peer_qt_QtEmbeddedWindowPeer.h | 3 + .../gnu_java_awt_peer_qt_QtFileDialogPeer.h | 3 + .../gnu_java_awt_peer_qt_QtFontMetrics.h | 3 + .../gnu_java_awt_peer_qt_QtFramePeer.h | 3 + .../include/gnu_java_awt_peer_qt_QtImage.h | 11 + .../gnu_java_awt_peer_qt_QtLabelPeer.h | 3 + .../include/gnu_java_awt_peer_qt_QtListPeer.h | 3 + .../gnu_java_awt_peer_qt_QtPanelPeer.h | 3 + .../gnu_java_awt_peer_qt_QtScreenDevice.h | 7 + .../gnu_java_awt_peer_qt_QtScrollPanePeer.h | 3 + .../gnu_java_awt_peer_qt_QtScrollbarPeer.h | 3 + .../gnu_java_awt_peer_qt_QtTextAreaPeer.h | 3 + .../gnu_java_awt_peer_qt_QtTextFieldPeer.h | 3 + .../gnu_java_awt_peer_qt_QtVolatileImage.h | 17 + .../gnu_java_awt_peer_qt_QtWindowPeer.h | 3 + .../gnu_java_nio_charset_iconv_IconvDecoder.h | 9 + .../gnu_java_nio_charset_iconv_IconvEncoder.h | 9 + libjava/classpath/include/java_io_VMConsole.h | 19 + .../classpath/include/java_lang_VMSystem.h | 1 + libjava/classpath/install-sh | 23 +- libjava/classpath/java/io/Console.java | 122 + libjava/classpath/java/io/File.java | 4 +- libjava/classpath/java/io/IOError.java | 58 + .../classpath/java/io/ObjectOutputStream.java | 46 + libjava/classpath/java/io/PrintStream.java | 12 + libjava/classpath/java/lang/Class.java | 12 + libjava/classpath/java/lang/System.java | 11 +- libjava/classpath/java/math/BigInteger.java | 6 +- .../classpath/java/net/DatagramSocket.java | 22 +- libjava/classpath/java/net/Socket.java | 11 +- .../nio/channels/spi/SelectorProvider.java | 12 +- libjava/classpath/java/security/KeyStore.java | 7 +- .../java/security/ProtectionDomain.java | 24 +- .../java/text/DateFormatSymbols.java | 81 +- libjava/classpath/java/util/Formatter.java | 2 +- libjava/classpath/java/util/HashMap.java | 10 +- .../java/util/logging/LogManager.java | 27 +- .../classpath/java/util/regex/Matcher.java | 29 + .../classpath/java/util/regex/Pattern.java | 40 +- .../java/util/zip/InflaterHuffmanTree.java | 7 +- libjava/classpath/java/util/zip/ZipFile.java | 5 +- .../javax/swing/text/html/StyleSheet.java | 3 +- libjava/classpath/lib/Makefile.am | 2 +- libjava/classpath/lib/Makefile.in | 2 +- .../lib/gnu/classpath/Configuration.class | Bin 904 -> 904 bytes .../lib/gnu/classpath/SystemProperties.class | Bin 2655 -> 2655 bytes .../lib/gnu/gcj/convert/Convert.class | Bin 4799 -> 4799 bytes .../lib/gnu/gcj/tools/gcj_dbtool/Main.class | Bin 10918 -> 10918 bytes .../gnu/java/beans/editors/ColorEditor.class | Bin 2251 -> 2251 bytes .../gnu/java/rmi/registry/RegistryImpl.class | Bin 4244 -> 4244 bytes .../lib/gnu/java/security/Properties$1.class | Bin 753 -> 753 bytes .../lib/gnu/java/security/Properties.class | Bin 5002 -> 4857 bytes .../lib/gnu/java/security/der/DERWriter.class | Bin 6118 -> 6125 bytes .../gnu/java/security/hash/Whirlpool.class | Bin 10870 -> 10702 bytes .../security/jce/sig/EncodedKeyFactory.class | Bin 9348 -> 9224 bytes .../security/jce/sig/SignatureAdapter.class | Bin 4861 -> 4716 bytes .../key/dss/DSSKeyPairGenerator.class | Bin 7539 -> 7394 bytes .../key/dss/DSSKeyPairPKCS8Codec.class | Bin 5128 -> 4983 bytes .../key/rsa/RSAKeyPairGenerator.class | Bin 4142 -> 3997 bytes .../key/rsa/RSAKeyPairPKCS8Codec.class | Bin 6261 -> 6116 bytes .../key/rsa/RSAKeyPairX509Codec.class | Bin 4663 -> 4518 bytes .../java/security/pkcs/PKCS7SignedData.class | Bin 8206 -> 8038 bytes .../gnu/java/security/pkcs/SignerInfo.class | Bin 6501 -> 6148 bytes .../provider/PKIXCertPathValidatorImpl.class | Bin 14116 -> 13970 bytes .../gnu/java/security/sig/rsa/EMSA_PSS.class | Bin 3734 -> 3589 bytes .../security/sig/rsa/RSAPSSSignature.class | Bin 4129 -> 3984 bytes .../lib/gnu/java/security/x509/X509CRL.class | Bin 9799 -> 9695 bytes .../gnu/java/security/x509/X509CRLEntry.class | Bin 5377 -> 5232 bytes .../security/x509/ext/Extension$Value.class | Bin 1195 -> 1195 bytes .../java/security/x509/ext/Extension.class | Bin 4903 -> 4799 bytes .../lib/gnu/javax/crypto/cipher/Anubis.class | Bin 8212 -> 8044 bytes .../gnu/javax/crypto/cipher/BaseCipher.class | Bin 4423 -> 4278 bytes .../lib/gnu/javax/crypto/cipher/Khazad.class | Bin 7325 -> 7157 bytes .../gnu/javax/crypto/cipher/Rijndael.class | Bin 11637 -> 11469 bytes .../lib/gnu/javax/crypto/cipher/Twofish.class | Bin 11522 -> 11354 bytes .../cipher/KeyWrappingAlgorithmAdapter.class | Bin 8363 -> 8217 bytes .../javax/crypto/jce/keyring/GnuKeyring.class | Bin 9345 -> 9241 bytes .../jce/params/BlockCipherParameters.class | Bin 3568 -> 3444 bytes .../javax/crypto/jce/prng/ICMRandomSpi.class | Bin 3735 -> 3590 bytes .../javax/crypto/jce/prng/UMacRandomSpi.class | Bin 3209 -> 3064 bytes .../crypto/key/dh/GnuDHKeyPairGenerator.class | Bin 4686 -> 4419 bytes .../crypto/key/srp6/SRPKeyPairGenerator.class | Bin 5486 -> 5341 bytes .../lib/gnu/javax/crypto/keyring/Entry.class | Bin 3066 -> 2921 bytes .../javax/crypto/keyring/EnvelopeEntry.class | Bin 7797 -> 7652 bytes .../crypto/keyring/GnuPublicKeyring.class | Bin 4016 -> 3848 bytes .../lib/gnu/javax/crypto/mac/OMAC.class | Bin 5837 -> 5692 bytes .../lib/gnu/javax/crypto/pad/BasePad.class | Bin 2371 -> 2226 bytes .../lib/gnu/javax/crypto/pad/PKCS1_V1_5.class | Bin 2172 -> 2004 bytes .../lib/gnu/javax/crypto/pad/PKCS7.class | Bin 1381 -> 1213 bytes .../lib/gnu/javax/crypto/pad/TBC.class | Bin 1423 -> 1255 bytes .../lib/gnu/javax/crypto/prng/CSPRNG$1.class | Bin 697 -> 697 bytes .../gnu/javax/crypto/prng/CSPRNG$Poller.class | Bin 3779 -> 3779 bytes .../javax/crypto/prng/CSPRNG$Spinner.class | Bin 738 -> 738 bytes .../lib/gnu/javax/crypto/prng/CSPRNG.class | Bin 12816 -> 12668 bytes .../javax/crypto/sasl/SaslInputStream.class | Bin 4002 -> 3857 bytes .../javax/crypto/sasl/SaslOutputStream.class | Bin 2860 -> 2715 bytes .../gnu/javax/crypto/sasl/srp/SRPClient.class | Bin 18687 -> 18583 bytes .../gnu/javax/crypto/sasl/srp/SRPServer.class | Bin 15872 -> 15722 bytes .../javax/net/ssl/provider/CipherSuite.class | Bin 13470 -> 13650 bytes .../provider/OutputSecurityParameters.class | Bin 6668 -> 7171 bytes .../net/ssl/provider/SSLEngineImpl.class | Bin 21827 -> 21992 bytes .../lib/gnu/javax/print/PrinterDialog.class | Bin 7369 -> 7406 bytes .../auth/login/ConfigFileParser.class | Bin 5506 -> 5361 bytes .../auth/login/ConfigFileTokenizer.class | Bin 3435 -> 3229 bytes .../auth/login/GnuConfiguration.class | Bin 5608 -> 5463 bytes libjava/classpath/lib/java/io/Console.class | Bin 0 -> 2431 bytes libjava/classpath/lib/java/io/File.class | Bin 11774 -> 14360 bytes libjava/classpath/lib/java/io/IOError.class | Bin 0 -> 393 bytes .../lib/java/io/ObjectOutputStream$1.class | Bin 4718 -> 4718 bytes .../lib/java/io/ObjectOutputStream$2.class | Bin 0 -> 1650 bytes .../java/io/ObjectOutputStream$PutField.class | Bin 818 -> 818 bytes .../lib/java/io/ObjectOutputStream.class | Bin 18755 -> 19175 bytes libjava/classpath/lib/java/io/VMConsole.class | Bin 0 -> 331 bytes .../classpath/lib/java/math/BigInteger.class | Bin 35161 -> 35179 bytes .../lib/java/net/DatagramSocket.class | Bin 10347 -> 10537 bytes libjava/classpath/lib/java/net/Socket.class | Bin 11438 -> 11520 bytes .../nio/channels/spi/SelectorProvider$1.class | Bin 0 -> 926 bytes .../nio/channels/spi/SelectorProvider.class | Bin 2231 -> 2324 bytes .../lib/java/security/KeyStore$1.class | Bin 0 -> 812 bytes .../lib/java/security/KeyStore.class | Bin 6138 -> 6244 bytes .../lib/java/security/ProtectionDomain.class | Bin 3530 -> 4024 bytes .../lib/java/text/DateFormatSymbols.class | Bin 10132 -> 11437 bytes .../classpath/lib/java/util/Formatter.class | Bin 17840 -> 17810 bytes .../classpath/lib/java/util/HashMap$1.class | Bin 1222 -> 1222 bytes .../classpath/lib/java/util/HashMap$2.class | Bin 898 -> 898 bytes .../classpath/lib/java/util/HashMap$3.class | Bin 1574 -> 1574 bytes .../lib/java/util/HashMap$HashEntry.class | Bin 1057 -> 1057 bytes .../lib/java/util/HashMap$HashIterator.class | Bin 1874 -> 1874 bytes libjava/classpath/lib/java/util/HashMap.class | Bin 9025 -> 9112 bytes libjava/classpath/lib/java/util/HashSet.class | Bin 3994 -> 3994 bytes .../lib/java/util/regex/Matcher.class | Bin 7104 -> 7507 bytes .../lib/java/util/regex/Pattern.class | Bin 4383 -> 5153 bytes .../lib/java/util/zip/ZipFile$1.class | Bin 1024 -> 1024 bytes .../util/zip/ZipFile$PartialInputStream.class | Bin 5138 -> 5138 bytes .../zip/ZipFile$ZipEntryEnumeration.class | Bin 1173 -> 1173 bytes .../classpath/lib/java/util/zip/ZipFile.class | Bin 7664 -> 7759 bytes .../text/html/StyleSheet$BoxPainter.class | Bin 3549 -> 3549 bytes .../text/html/StyleSheet$ListPainter.class | Bin 2769 -> 2769 bytes .../javax/swing/text/html/StyleSheet.class | Bin 18289 -> 18247 bytes .../xml/stream/util/ReaderDelegate.class | Bin 6601 -> 0 bytes libjava/classpath/ltmain.sh | 1395 +++++----- libjava/classpath/ltoptions.m4 | 11 +- libjava/classpath/ltversion.m4 | 10 +- libjava/classpath/lt~obsolete.m4 | 10 +- .../m4/ax_func_which_gethostbyname_r.m4 | 16 +- libjava/classpath/missing | 53 +- libjava/classpath/native/jni/classpath/jcl.c | 128 +- .../jni/gstreamer-peer/gst_classpath_src.c | 2 - .../jni/gtk-peer/GtkDragSourceContextPeer.c | 9 +- .../gnu_java_awt_peer_gtk_ComponentGraphics.c | 4 - .../gnu_java_awt_peer_gtk_GdkRobotPeer.c | 14 +- .../gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c | 11 +- .../gnu_java_awt_peer_gtk_GtkToolkit.c | 3 +- .../gnu_java_awt_peer_gtk_GtkVolatileImage.c | 4 +- .../classpath/native/jni/java-io/Makefile.am | 3 +- .../classpath/native/jni/java-io/Makefile.in | 6 +- .../native/jni/java-io/java_io_VMConsole.c | 90 + .../native/jni/java-lang/java_lang_VMSystem.c | 52 +- .../jni/java-net/java_net_VMInetAddress.c | 2 + .../java-nio/java_nio_VMDirectByteBuffer.c | 7 + ...gnu_javax_sound_midi_alsa_AlsaPortDevice.c | 16 +- .../java/locale/LocaleInformation.properties | 26 +- .../locale/LocaleInformation_aa.properties | 44 +- .../locale/LocaleInformation_aa_DJ.properties | 4 +- .../locale/LocaleInformation_aa_ER.properties | 2 +- .../LocaleInformation_aa_ER_SAAHO.properties | 4 +- .../locale/LocaleInformation_af.properties | 714 ++--- .../locale/LocaleInformation_ak.properties | 8 +- .../locale/LocaleInformation_am.properties | 832 +++--- .../locale/LocaleInformation_ar.properties | 1986 +++++++------- .../locale/LocaleInformation_ar_JO.properties | 6 +- .../locale/LocaleInformation_ar_LB.properties | 6 +- .../locale/LocaleInformation_ar_QA.properties | 2 +- .../locale/LocaleInformation_ar_SA.properties | 2 +- .../locale/LocaleInformation_ar_SY.properties | 6 +- .../locale/LocaleInformation_ar_TN.properties | 2 +- .../locale/LocaleInformation_ar_YE.properties | 2 +- .../locale/LocaleInformation_as.properties | 32 +- .../locale/LocaleInformation_az.properties | 1988 +++++++------- .../LocaleInformation_az_Cyrl.properties | 28 +- .../locale/LocaleInformation_be.properties | 882 +++--- .../locale/LocaleInformation_bg.properties | 1774 ++++++------ .../locale/LocaleInformation_bn.properties | 2012 +++++++------- .../locale/LocaleInformation_bn_IN.properties | 174 +- .../locale/LocaleInformation_bs.properties | 214 +- .../locale/LocaleInformation_byn.properties | 538 ++-- .../locale/LocaleInformation_ca.properties | 1418 +++++----- .../locale/LocaleInformation_cch.properties | 8 +- .../locale/LocaleInformation_cop.properties | 8 +- .../locale/LocaleInformation_cs.properties | 1502 +++++----- .../locale/LocaleInformation_cy.properties | 740 ++--- .../locale/LocaleInformation_da.properties | 2168 +++++++-------- .../locale/LocaleInformation_de.properties | 2292 ++++++++-------- .../locale/LocaleInformation_de_AT.properties | 4 +- .../locale/LocaleInformation_de_BE.properties | 4 +- .../locale/LocaleInformation_de_CH.properties | 12 +- .../locale/LocaleInformation_dv.properties | 8 +- .../locale/LocaleInformation_dz.properties | 216 +- .../locale/LocaleInformation_ee.properties | 10 +- .../locale/LocaleInformation_el.properties | 1466 +++++----- .../locale/LocaleInformation_en.properties | 2336 ++++++++-------- .../LocaleInformation_en_Dsrt.properties | 776 +++--- .../locale/LocaleInformation_en_IE.properties | 2 +- .../LocaleInformation_en_Shaw.properties | 10 +- .../locale/LocaleInformation_eo.properties | 728 ++--- .../locale/LocaleInformation_es.properties | 2214 +++++++-------- .../locale/LocaleInformation_es_AR.properties | 4 +- .../locale/LocaleInformation_es_CL.properties | 10 +- .../locale/LocaleInformation_et.properties | 1860 ++++++------- .../locale/LocaleInformation_eu.properties | 642 ++--- .../locale/LocaleInformation_fa.properties | 1740 ++++++------ .../locale/LocaleInformation_fa_AF.properties | 232 +- .../locale/LocaleInformation_fi.properties | 2102 +++++++------- .../locale/LocaleInformation_fil.properties | 800 +++--- .../locale/LocaleInformation_fo.properties | 672 ++--- .../locale/LocaleInformation_fr.properties | 2440 ++++++++--------- .../locale/LocaleInformation_fur.properties | 930 +++---- .../locale/LocaleInformation_ga.properties | 1406 +++++----- .../locale/LocaleInformation_gaa.properties | 10 +- .../locale/LocaleInformation_gez.properties | 536 ++-- .../LocaleInformation_gez_ET.properties | 2 +- .../locale/LocaleInformation_gl.properties | 976 +++---- .../locale/LocaleInformation_gu.properties | 210 +- .../locale/LocaleInformation_gv.properties | 8 +- .../locale/LocaleInformation_ha.properties | 204 +- .../LocaleInformation_ha_Arab.properties | 8 +- .../locale/LocaleInformation_haw.properties | 36 +- .../locale/LocaleInformation_he.properties | 1574 +++++------ .../locale/LocaleInformation_hi.properties | 1130 ++++---- .../locale/LocaleInformation_hr.properties | 1374 +++++----- .../locale/LocaleInformation_hu.properties | 2268 +++++++-------- .../locale/LocaleInformation_hy.properties | 594 ++-- ...LocaleInformation_hy_AM_REVISED.properties | 4 +- .../locale/LocaleInformation_ia.properties | 574 ++-- .../locale/LocaleInformation_id.properties | 1560 +++++------ .../locale/LocaleInformation_ig.properties | 8 +- .../locale/LocaleInformation_ii.properties | 36 +- .../locale/LocaleInformation_is.properties | 1968 ++++++------- .../locale/LocaleInformation_it.properties | 2204 +++++++-------- .../locale/LocaleInformation_iu.properties | 8 +- .../locale/LocaleInformation_ja.properties | 2238 +++++++-------- .../locale/LocaleInformation_ka.properties | 1156 ++++---- .../locale/LocaleInformation_kaj.properties | 8 +- .../locale/LocaleInformation_kam.properties | 8 +- .../locale/LocaleInformation_kcg.properties | 8 +- .../locale/LocaleInformation_kfo.properties | 8 +- .../locale/LocaleInformation_kk.properties | 202 +- .../locale/LocaleInformation_kl.properties | 8 +- .../locale/LocaleInformation_km.properties | 590 ++-- .../locale/LocaleInformation_kn.properties | 268 +- .../locale/LocaleInformation_ko.properties | 2078 +++++++------- .../locale/LocaleInformation_kok.properties | 276 +- .../locale/LocaleInformation_kpe.properties | 8 +- .../locale/LocaleInformation_ku.properties | 194 +- .../LocaleInformation_ku_Latn.properties | 10 +- .../locale/LocaleInformation_kw.properties | 8 +- .../locale/LocaleInformation_ky.properties | 156 +- .../locale/LocaleInformation_ln.properties | 442 +-- .../locale/LocaleInformation_lo.properties | 674 ++--- .../locale/LocaleInformation_lt.properties | 1320 ++++----- .../locale/LocaleInformation_lv.properties | 1630 +++++------ .../locale/LocaleInformation_mk.properties | 1122 ++++---- .../locale/LocaleInformation_ml.properties | 2200 +++++++-------- .../locale/LocaleInformation_mn.properties | 218 +- .../locale/LocaleInformation_mr.properties | 288 +- .../locale/LocaleInformation_ms.properties | 674 ++--- .../locale/LocaleInformation_mt.properties | 1470 +++++----- .../locale/LocaleInformation_my.properties | 842 +++--- .../locale/LocaleInformation_nb.properties | 2062 +++++++------- .../locale/LocaleInformation_ne.properties | 760 ++--- .../locale/LocaleInformation_nl.properties | 2234 +++++++-------- .../locale/LocaleInformation_nl_BE.properties | 10 +- .../locale/LocaleInformation_nn.properties | 1646 +++++------ .../locale/LocaleInformation_nr.properties | 8 +- .../locale/LocaleInformation_nso.properties | 8 +- .../locale/LocaleInformation_ny.properties | 8 +- .../locale/LocaleInformation_om.properties | 190 +- .../locale/LocaleInformation_or.properties | 8 +- .../locale/LocaleInformation_pa.properties | 70 +- .../LocaleInformation_pa_Arab.properties | 10 +- .../locale/LocaleInformation_pl.properties | 2200 +++++++-------- .../locale/LocaleInformation_ps.properties | 324 +-- .../locale/LocaleInformation_pt.properties | 2252 +++++++-------- .../locale/LocaleInformation_pt_PT.properties | 458 ++-- .../locale/LocaleInformation_ro.properties | 1350 ++++----- .../locale/LocaleInformation_ru.properties | 2240 +++++++-------- .../locale/LocaleInformation_ru_UA.properties | 4 +- .../locale/LocaleInformation_rw.properties | 204 +- .../locale/LocaleInformation_sa.properties | 44 +- .../locale/LocaleInformation_se.properties | 652 ++--- .../locale/LocaleInformation_se_FI.properties | 214 +- .../locale/LocaleInformation_si.properties | 12 +- .../locale/LocaleInformation_sid.properties | 40 +- .../locale/LocaleInformation_sk.properties | 1450 +++++----- .../locale/LocaleInformation_sl.properties | 878 +++--- .../locale/LocaleInformation_so.properties | 434 +-- .../locale/LocaleInformation_sq.properties | 524 ++-- .../locale/LocaleInformation_sr.properties | 1012 +++---- .../LocaleInformation_sr_BA_Cyrl.properties | 6 +- .../LocaleInformation_sr_Latn.properties | 886 +++--- .../locale/LocaleInformation_ss.properties | 8 +- .../locale/LocaleInformation_st.properties | 180 +- .../locale/LocaleInformation_sv.properties | 2294 ++++++++-------- .../locale/LocaleInformation_sv_FI.properties | 6 +- .../locale/LocaleInformation_sw.properties | 356 +-- .../locale/LocaleInformation_syr.properties | 8 +- .../locale/LocaleInformation_ta.properties | 648 ++--- .../locale/LocaleInformation_te.properties | 108 +- .../locale/LocaleInformation_tg.properties | 108 +- .../locale/LocaleInformation_th.properties | 2078 +++++++------- .../locale/LocaleInformation_ti.properties | 194 +- .../locale/LocaleInformation_ti_ER.properties | 10 +- .../locale/LocaleInformation_tig.properties | 536 ++-- .../locale/LocaleInformation_tn.properties | 156 +- .../locale/LocaleInformation_to.properties | 332 +-- .../locale/LocaleInformation_tr.properties | 2260 +++++++-------- .../locale/LocaleInformation_trv.properties | 84 +- .../locale/LocaleInformation_ts.properties | 46 +- .../locale/LocaleInformation_tt.properties | 8 +- .../locale/LocaleInformation_ug.properties | 8 +- .../locale/LocaleInformation_uk.properties | 2268 +++++++-------- .../locale/LocaleInformation_ur.properties | 684 ++--- .../locale/LocaleInformation_uz.properties | 46 +- .../LocaleInformation_uz_Arab.properties | 10 +- .../LocaleInformation_uz_Latn.properties | 46 +- .../locale/LocaleInformation_ve.properties | 8 +- .../locale/LocaleInformation_vi.properties | 866 +++--- .../locale/LocaleInformation_wal.properties | 282 +- .../locale/LocaleInformation_wo.properties | 24 +- .../locale/LocaleInformation_xh.properties | 204 +- .../locale/LocaleInformation_yo.properties | 204 +- .../locale/LocaleInformation_zh.properties | 2046 +++++++------- .../LocaleInformation_zh_HK_Hant.properties | 22 +- .../LocaleInformation_zh_Hant.properties | 1922 +++++++------ .../locale/LocaleInformation_zu.properties | 204 +- ...g.properties => MessagesBundle.properties} | 18 +- ...roperties => MessagesBundle_de.properties} | 32 +- libjava/classpath/tools/Makefile.am | 10 +- libjava/classpath/tools/Makefile.in | 10 +- .../tools/common/ClasspathToolParser.class | Bin 4028 -> 4028 bytes .../gnu/classpath/tools/common/Messages.class | Bin 1151 -> 1151 bytes .../tools/doclets/htmldoclet/HtmlDoclet.class | Bin 79930 -> 79930 bytes .../gnu/classpath/tools/getopt/Messages.class | Bin 1151 -> 1151 bytes .../gnu/classpath/tools/gjdoc/Main.class | Bin 29338 -> 29338 bytes .../gnu/classpath/tools/javah/JniHelper.class | Bin 2909 -> 2933 bytes .../tools/javah/JniIncludePrinter.class | Bin 4600 -> 4632 bytes .../gnu/classpath/tools/javah/Main$1.class | Bin 1002 -> 1002 bytes .../gnu/classpath/tools/javah/Main$10.class | Bin 941 -> 941 bytes .../gnu/classpath/tools/javah/Main$2.class | Bin 1119 -> 1119 bytes .../gnu/classpath/tools/javah/Main$3.class | Bin 1124 -> 1124 bytes .../gnu/classpath/tools/javah/Main$4.class | Bin 1007 -> 1007 bytes .../gnu/classpath/tools/javah/Main$5.class | Bin 1069 -> 1069 bytes .../gnu/classpath/tools/javah/Main$6.class | Bin 939 -> 939 bytes .../gnu/classpath/tools/javah/Main$7.class | Bin 1064 -> 1064 bytes .../gnu/classpath/tools/javah/Main$8.class | Bin 1064 -> 1064 bytes .../gnu/classpath/tools/javah/Main$9.class | Bin 973 -> 973 bytes .../gnu/classpath/tools/javah/Main.class | Bin 11933 -> 12769 bytes .../gnu/classpath/tools/orbd/Main$1.class | Bin 1106 -> 1106 bytes .../gnu/classpath/tools/orbd/Main$2.class | Bin 1052 -> 1052 bytes .../gnu/classpath/tools/orbd/Main$3.class | Bin 1048 -> 1048 bytes .../gnu/classpath/tools/orbd/Main$4.class | Bin 969 -> 969 bytes .../gnu/classpath/tools/orbd/Main$5.class | Bin 721 -> 721 bytes .../gnu/classpath/tools/orbd/Main.class | Bin 5476 -> 5476 bytes .../gnu/classpath/tools/common/Messages.java | 4 +- .../gnu/classpath/tools/getopt/Messages.java | 4 +- .../gnu/classpath/tools/javah/JniHelper.java | 2 + .../tools/javah/JniIncludePrinter.java | 5 +- .../tools/gnu/classpath/tools/javah/Main.java | 87 +- ...essages.properties => messages.properties} | 4 +- ...essages.properties => messages.properties} | 4 +- .../gnu/classpath/VMStackWalker.java | 5 +- .../gnu/classpath/VMSystemProperties.java | 7 +- .../gnu/java/lang/VMCPStringBuilder.java | 4 +- .../gnu/java/lang/VMInstrumentationImpl.java | 4 +- .../management/VMClassLoadingMXBeanImpl.java | 4 +- .../management/VMCompilationMXBeanImpl.java | 4 +- .../VMGarbageCollectorMXBeanImpl.java | 4 +- .../lang/management/VMMemoryMXBeanImpl.java | 4 +- .../management/VMMemoryManagerMXBeanImpl.java | 4 +- .../management/VMMemoryPoolMXBeanImpl.java | 4 +- .../VMOperatingSystemMXBeanImpl.java | 4 +- .../lang/management/VMRuntimeMXBeanImpl.java | 4 +- .../lang/management/VMThreadMXBeanImpl.java | 4 +- .../java/net/VMPlainDatagramSocketImpl.java | 8 +- .../vm/reference/gnu/java/nio/VMPipe.java | 4 +- .../vm/reference/gnu/java/nio/VMSelector.java | 7 +- .../security/jce/prng/VMSecureRandom.java | 9 +- .../vm/reference/java/io/VMConsole.java | 44 + .../vm/reference/java/io/VMFile.java | 89 +- .../java/io/VMObjectInputStream.java | 5 +- .../java/io/VMObjectStreamClass.java | 5 +- .../vm/reference/java/lang/VMClass.java | 29 +- .../vm/reference/java/lang/VMClassLoader.java | 8 +- .../vm/reference/java/lang/VMCompiler.java | 12 +- .../vm/reference/java/lang/VMDouble.java | 19 +- .../vm/reference/java/lang/VMFloat.java | 4 +- .../vm/reference/java/lang/VMMath.java | 53 +- .../vm/reference/java/lang/VMObject.java | 5 +- .../vm/reference/java/lang/VMString.java | 4 +- .../vm/reference/java/lang/VMSystem.java | 21 +- .../lang/management/VMManagementFactory.java | 4 +- .../reference/java/lang/reflect/VMArray.java | 7 +- .../reference/java/lang/reflect/VMProxy.java | 4 +- .../vm/reference/java/net/VMInetAddress.java | 19 +- .../reference/java/net/VMURLConnection.java | 7 +- .../java/nio/VMDirectByteBuffer.java | 23 +- .../java/security/VMAccessController.java | 8 +- .../java/security/VMSecureRandom.java | 9 +- .../vm/reference/java/util/VMTimeZone.java | 5 +- .../vm/reference/sun/misc/Unsafe.java | 6 +- libjava/gcj/Makefile.in | 2 +- libjava/gcj/javaprims.h | 4 + libjava/gnu/classpath/Configuration.java | 2 +- .../crypto/key/dh/GnuDHKeyPairGenerator.h | 7 +- .../gnu/javax/net/ssl/provider/CipherSuite.h | 6 +- .../ssl/provider/OutputSecurityParameters.h | 3 + libjava/include/Makefile.in | 2 +- libjava/java/io/Console.h | 36 + libjava/java/io/IOError.h | 22 + libjava/java/io/ObjectOutputStream$2.h | 25 + libjava/java/io/ObjectOutputStream.h | 1 + libjava/java/io/VMConsole.h | 22 + libjava/java/io/VMConsole.java | 44 + libjava/java/io/natVMConsole.cc | 45 + .../nio/channels/spi/SelectorProvider$1.h | 38 + libjava/java/security/KeyStore$1.h | 32 + libjava/java/security/ProtectionDomain.h | 1 + libjava/java/text/DateFormatSymbols.h | 3 +- libjava/java/util/HashMap.h | 2 +- libjava/java/util/regex/Matcher.h | 1 + libjava/java/util/regex/Pattern.h | 1 + .../javax/xml/stream/util/ReaderDelegate.h | 95 - libjava/sources.am | 7 +- libjava/testsuite/Makefile.in | 2 +- 516 files changed, 62726 insertions(+), 59339 deletions(-) create mode 100644 libjava/classpath/include/java_io_VMConsole.h create mode 100644 libjava/classpath/java/io/Console.java create mode 100644 libjava/classpath/java/io/IOError.java create mode 100644 libjava/classpath/lib/java/io/Console.class create mode 100644 libjava/classpath/lib/java/io/IOError.class create mode 100644 libjava/classpath/lib/java/io/ObjectOutputStream$2.class create mode 100644 libjava/classpath/lib/java/io/VMConsole.class create mode 100644 libjava/classpath/lib/java/nio/channels/spi/SelectorProvider$1.class create mode 100644 libjava/classpath/lib/java/security/KeyStore$1.class delete mode 100644 libjava/classpath/lib/javax/xml/stream/util/ReaderDelegate.class create mode 100644 libjava/classpath/native/jni/java-io/java_io_VMConsole.c rename libjava/classpath/resource/gnu/javax/print/{PrinterDialog.properties => MessagesBundle.properties} (95%) rename libjava/classpath/resource/gnu/javax/print/{PrinterDialog_de.properties => MessagesBundle_de.properties} (88%) rename libjava/classpath/tools/resource/gnu/classpath/tools/common/{Messages.properties => messages.properties} (94%) rename libjava/classpath/tools/resource/gnu/classpath/tools/getopt/{Messages.properties => messages.properties} (95%) create mode 100644 libjava/classpath/vm/reference/java/io/VMConsole.java create mode 100644 libjava/java/io/Console.h create mode 100644 libjava/java/io/IOError.h create mode 100644 libjava/java/io/ObjectOutputStream$2.h create mode 100644 libjava/java/io/VMConsole.h create mode 100644 libjava/java/io/VMConsole.java create mode 100644 libjava/java/io/natVMConsole.cc create mode 100644 libjava/java/nio/channels/spi/SelectorProvider$1.h create mode 100644 libjava/java/security/KeyStore$1.h delete mode 100644 libjava/javax/xml/stream/util/ReaderDelegate.h diff --git a/libjava/ChangeLog b/libjava/ChangeLog index ccce6d8965b..b5f65ef18e6 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,37 @@ +2012-03-16 Andrew John Hughes + + * Makefile.am: Add natVMConsole.cc. + * Makefile.in: Regenerated. + * gcj/Makefile.in: Likewise. + * gcj/javaprims.h: Classes updated. + * gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h, + * gnu/javax/net/ssl/provider/CipherSuite.h, + * gnu/javax/net/ssl/provider/OutputSecurityParameters.h, + * include/Makefile.in: + Regenerated. + * java/io/Console.h, + * java/io/IOError.h, + * java/io/ObjectOutputStream$2.h: + Initial generation. + * java/io/ObjectOutputStream.h: Regenerated. + * java/io/VMConsole.h: Initial generation. + * java/io/VMConsole.java: Copied from classpath/vm/reference. + * java/io/natVMConsole.cc: Implemented readPassword. + * java/nio/channels/spi/SelectorProvider$1.h, + * java/security/KeyStore$1.h: + Initial generation. + * java/security/ProtectionDomain.h, + * java/text/DateFormatSymbols.h, + * java/util/HashMap.h, + * java/util/regex/Matcher.h, + * java/util/regex/Pattern.h: + Regenerated. + * javax/xml/stream/util/ReaderDelegate.h: + Removed. + * sources.am, + * testsuite/Makefile.in: + Regenerated. + 2012-03-14 Rainer Orth * configure.ac (THREADLIBS): Remove *-*-solaris2.8 handling. diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 1309defb623..1b7196285aa 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -1360,6 +1360,7 @@ gnu/java/nio/natVMChannel.cc \ gnu/java/nio/channels/natFileChannelImpl.cc \ gnu/java/security/jce/prng/natVMSecureRandom.cc \ java/io/natFile.cc \ +java/io/natVMConsole.cc \ java/io/natVMObjectInputStream.cc \ java/io/natVMObjectStreamClass.cc \ java/lang/natCharacter.cc \ diff --git a/libjava/Makefile.in b/libjava/Makefile.in index e741f26d06d..1380a7ef633 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -358,7 +358,8 @@ am__objects_5 = $(am__objects_3) gnu/classpath/natConfiguration.lo \ gnu/java/nio/natVMChannel.lo \ gnu/java/nio/channels/natFileChannelImpl.lo \ gnu/java/security/jce/prng/natVMSecureRandom.lo \ - java/io/natFile.lo java/io/natVMObjectInputStream.lo \ + java/io/natFile.lo java/io/natVMConsole.lo \ + java/io/natVMObjectInputStream.lo \ java/io/natVMObjectStreamClass.lo java/lang/natCharacter.lo \ java/lang/natClass.lo java/lang/natClassLoader.lo \ java/lang/natConcreteProcess.lo java/lang/natVMDouble.lo \ @@ -4275,6 +4276,7 @@ classpath/java/io/CharArrayReader.java \ classpath/java/io/CharArrayWriter.java \ classpath/java/io/CharConversionException.java \ classpath/java/io/Closeable.java \ +classpath/java/io/Console.java \ classpath/java/io/DataInput.java \ classpath/java/io/DataInputStream.java \ classpath/java/io/DataOutput.java \ @@ -4297,6 +4299,7 @@ classpath/java/io/FilterOutputStream.java \ classpath/java/io/FilterReader.java \ classpath/java/io/FilterWriter.java \ classpath/java/io/Flushable.java \ +classpath/java/io/IOError.java \ classpath/java/io/IOException.java \ classpath/java/io/InputStream.java \ java/io/InputStreamReader.java \ @@ -4340,6 +4343,7 @@ classpath/java/io/StringWriter.java \ classpath/java/io/SyncFailedException.java \ classpath/java/io/UTFDataFormatException.java \ classpath/java/io/UnsupportedEncodingException.java \ +java/io/VMConsole.java \ java/io/VMObjectInputStream.java \ java/io/VMObjectStreamClass.java \ classpath/java/io/WriteAbortedException.java \ @@ -8352,8 +8356,8 @@ property_files = \ 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/print/MessagesBundle.properties \ + classpath/resource/gnu/javax/print/MessagesBundle_de.properties \ classpath/resource/gnu/javax/security/auth/callback/MessagesBundle.properties \ classpath/resource/java/text/metazones.properties \ classpath/resource/java/util/iso4217.properties \ @@ -8605,6 +8609,7 @@ gnu/java/nio/natVMChannel.cc \ gnu/java/nio/channels/natFileChannelImpl.cc \ gnu/java/security/jce/prng/natVMSecureRandom.cc \ java/io/natFile.cc \ +java/io/natVMConsole.cc \ java/io/natVMObjectInputStream.cc \ java/io/natVMObjectStreamClass.cc \ java/lang/natCharacter.cc \ @@ -9128,6 +9133,8 @@ java/io/$(DEPDIR)/$(am__dirstamp): @: > java/io/$(DEPDIR)/$(am__dirstamp) java/io/natFile.lo: java/io/$(am__dirstamp) \ java/io/$(DEPDIR)/$(am__dirstamp) +java/io/natVMConsole.lo: java/io/$(am__dirstamp) \ + java/io/$(DEPDIR)/$(am__dirstamp) java/io/natVMObjectInputStream.lo: java/io/$(am__dirstamp) \ java/io/$(DEPDIR)/$(am__dirstamp) java/io/natVMObjectStreamClass.lo: java/io/$(am__dirstamp) \ @@ -9636,6 +9643,8 @@ mostlyclean-compile: -rm -f gnu/java/security/jce/prng/natVMSecureRandom.lo -rm -f java/io/natFile.$(OBJEXT) -rm -f java/io/natFile.lo + -rm -f java/io/natVMConsole.$(OBJEXT) + -rm -f java/io/natVMConsole.lo -rm -f java/io/natVMObjectInputStream.$(OBJEXT) -rm -f java/io/natVMObjectInputStream.lo -rm -f java/io/natVMObjectStreamClass.$(OBJEXT) @@ -9810,6 +9819,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/nio/channels/$(DEPDIR)/natFileChannelImpl.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@gnu/java/security/jce/prng/$(DEPDIR)/natVMSecureRandom.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natFile.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natVMConsole.Plo@am__quote@ @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@ diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog index 0ba40b04c35..0bd2e6ee128 100644 --- a/libjava/classpath/ChangeLog +++ b/libjava/classpath/ChangeLog @@ -1,9 +1,1080 @@ +2012-03-08 Andrew John Hughes + + * NEWS: Set correct release date. + * configure.ac: Bump to 0.99 proper. + +2012-03-07 Andrew John Hughes + + * tools/Makefile.am: + (TOOLS_JAVA_FILES): Remove duplication. + (dist-hook): Fail if copying fails. + +2012-03-07 Andrew John Hughes + + * doc/cp-tools.texinfo: + Move macro definition outside of if block + so gcctabopt is always defined. + +2012-02-15 Andrew John Hughes + + * native/jni/gstreamer-peer/gst_classpath_src.c, + (gst_classpath_src_class_init(GstClasspathSrcClass)): + Remove unused gstelement_class. + +2012-02-15 Andrew John Hughes + + * NEWS: Updated prior to release. + +2012-02-15 Andrew John Hughes + + * java/text/DateFormatSymbols.java: + (getStringArray(List,String,int,String)): Remove hack which + removes last character of the input data; now unnecessary. + * 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_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_Dsrt.properties, + * resource/gnu/java/locale/LocaleInformation_en_Shaw.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_Latn.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_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_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_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_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_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: + Update locale data without trailing separator. + +2012-02-08 Andrew John Hughes + + PR classpath/42390 + * java/nio/channels/spi/SelectorProvider.java: + (provider()): Retrieve property value using + PrivilegedAction. + * java/security/KeyStore.java: + (getDefaultType()): Likewise. + +2012-02-06 Andrew John Hughes + + PR classpath/42390 + * java/net/DatagramSocket.java: + (connect(InetAddress,int)): Add missing security + checks which OpenJDK performs and we don't. It's + possible to initialise a DatagramSocket with null + so we should also ensure we are bound. + +2012-02-01 Andrew John Hughes + + * resource/gnu/java/locale/LocaleInformation.properties, + * resource/gnu/java/locale/LocaleInformation_ar.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_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_ee.properties, + * resource/gnu/java/locale/LocaleInformation_el.properties, + * resource/gnu/java/locale/LocaleInformation_en.properties, + * resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties, + * resource/gnu/java/locale/LocaleInformation_en_Shaw.properties, + * resource/gnu/java/locale/LocaleInformation_es.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_fr.properties, + * resource/gnu/java/locale/LocaleInformation_gaa.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_is.properties, + * resource/gnu/java/locale/LocaleInformation_it.properties, + * resource/gnu/java/locale/LocaleInformation_ja.properties, + * resource/gnu/java/locale/LocaleInformation_ko.properties, + * resource/gnu/java/locale/LocaleInformation_lt.properties, + * resource/gnu/java/locale/LocaleInformation_lv.properties, + * resource/gnu/java/locale/LocaleInformation_ml.properties, + * resource/gnu/java/locale/LocaleInformation_my.properties, + * resource/gnu/java/locale/LocaleInformation_nb.properties, + * resource/gnu/java/locale/LocaleInformation_nl.properties, + * resource/gnu/java/locale/LocaleInformation_nn.properties, + * resource/gnu/java/locale/LocaleInformation_pl.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_si.properties, + * resource/gnu/java/locale/LocaleInformation_sr.properties, + * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties, + * resource/gnu/java/locale/LocaleInformation_sv.properties, + * resource/gnu/java/locale/LocaleInformation_th.properties, + * resource/gnu/java/locale/LocaleInformation_tr.properties, + * resource/gnu/java/locale/LocaleInformation_uk.properties, + * resource/gnu/java/locale/LocaleInformation_ur.properties, + * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties, + * resource/gnu/java/locale/LocaleInformation_vi.properties, + * resource/gnu/java/locale/LocaleInformation_zh.properties, + * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties, + * resource/gnu/java/locale/LocaleInformation_zu.properties: + Use the 'format' context type for months and days, and avoid + alternatives for other elements. + +2012-01-30 Andrew John Hughes + + * resource/gnu/java/locale/LocaleInformation_ar.properties, + * resource/gnu/java/locale/LocaleInformation_ar_LB.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_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_el.properties, + * resource/gnu/java/locale/LocaleInformation_en.properties, + * resource/gnu/java/locale/LocaleInformation_en_Dsrt.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_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_ga.properties, + * resource/gnu/java/locale/LocaleInformation_gl.properties, + * resource/gnu/java/locale/LocaleInformation_gu.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_is.properties, + * resource/gnu/java/locale/LocaleInformation_it.properties, + * resource/gnu/java/locale/LocaleInformation_ja.properties, + * resource/gnu/java/locale/LocaleInformation_ka.properties, + * resource/gnu/java/locale/LocaleInformation_ko.properties, + * resource/gnu/java/locale/LocaleInformation_lt.properties, + * resource/gnu/java/locale/LocaleInformation_lv.properties, + * resource/gnu/java/locale/LocaleInformation_ml.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_pl.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_se.properties, + * resource/gnu/java/locale/LocaleInformation_se_FI.properties, + * resource/gnu/java/locale/LocaleInformation_si.properties, + * resource/gnu/java/locale/LocaleInformation_sk.properties, + * resource/gnu/java/locale/LocaleInformation_sl.properties, + * resource/gnu/java/locale/LocaleInformation_sr.properties, + * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties, + * resource/gnu/java/locale/LocaleInformation_sv.properties, + * resource/gnu/java/locale/LocaleInformation_ta.properties, + * resource/gnu/java/locale/LocaleInformation_th.properties, + * resource/gnu/java/locale/LocaleInformation_to.properties, + * resource/gnu/java/locale/LocaleInformation_tr.properties, + * resource/gnu/java/locale/LocaleInformation_uk.properties, + * resource/gnu/java/locale/LocaleInformation_vi.properties, + * resource/gnu/java/locale/LocaleInformation_zh.properties, + * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties: + Use the main approved value for our properties, rather than + just the one that happens to appear last in the XML source file. + +2012-01-20 Andrew John Hughes + + * 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_af.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_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_CH.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_Dsrt.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_es_AR.properties, + * resource/gnu/java/locale/LocaleInformation_es_CL.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_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_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_ii.properties, + * resource/gnu/java/locale/LocaleInformation_is.properties, + * resource/gnu/java/locale/LocaleInformation_it.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_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_ku_Latn.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_nl_BE.properties, + * resource/gnu/java/locale/LocaleInformation_nn.properties, + * resource/gnu/java/locale/LocaleInformation_om.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_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_Latn.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_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_trv.properties, + * resource/gnu/java/locale/LocaleInformation_ts.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_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_HK_Hant.properties, + * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties, + * resource/gnu/java/locale/LocaleInformation_zu.properties: + Update property files so that the keys are sorted, making later + changes visible. No actual data changes. + +2011-12-12 Andrew John Hughes + + RH712013: pdftk crashes with java.lang.ArrayIndexOutOfBoundsException + * java/text/DateFormatSymbols.java: + (getStringArray(List, String, int)): + Calls getStringArray(list,string,int,null). + (getStringArray(List, String, int, String[])): + Populate a String array with locale data. The data + used is the first non-null non-empty element found + as we traverse the locale hierarchy. May be supplemented + by fallback data. + (DateFormatSymbols(Locale)): Get a list of all bundles up the + locale hierarchy, rather than just using the one specific locale. + Use the improved getStringArray method to populate the arrays, + supplying existing data where "sideways" inheritance takes place. + +2012-01-07 Pekka Enberg + + * include/Makefile.am: + Add java_io_VMConsole.h. + * java/io/Console: + Add Java 1.6 java/io/Console API. + * java/lang/System.java: + (console): Add Java 1.6 console() API. + * vm/reference/java/io/VMConsole: + Add new class. + * native/jni/java-io/Makefile.am: + Add java_io_VMConsole.c. + * native/jni/java-io/java_io_VMConsole.c: + Add native helpers for java/io/Console. + +2012-01-05 Pekka Enberg + + * java/io/IOError: + Add new class. + +2011-12-01 Andrew John Hughes + + * gnu/javax/net/ssl/provider/CipherSuite.java: + Pass CBC mode to the static CipherSuite instances. + (isCBCMode): New variable. + (CipherSuite(CipherAlgorithm, KeyExchangeAlgorithm, + SignatureAlgorithm, MacAlgorithm, int, int, int, String, boolean)): + Allow isCBCMode to be specified. + (CipherSuite(CipherAlgorithm, KeyExchangeAlgorithm, boolean, + SignatureAlgorithm, MacAlgorithm, int, int, int, String, boolean)): + Likewise. + (cipher()): Generalise setting of 'alg' to work with any suite + that does not use CBC, not just "RC4". + (isCBCMode()): New method. Returns true if the CBC mode is used. + * gnu/javax/net/ssl/provider/OutputSecurityParameters.java: + (enableCBCProtection): Set to true by default of if jsse.enableCBCProtection + is true. + (needToSplitPayload()): Returns true if TLS < 1.1 is in use with + a CBC mode cipher and CBC protection is enabled. + * gnu/javax/net/ssl/provider/SSLEngineImpl.java: + (wrap(ByteBuffer[], int, int, ByteBuffer)): Send application data + as two packets (1 and n - 1) if CBC protection is enabled. + +2011-10-24 Pekka Enberg + + * java/util/HashMap.java: + (put): Fix NullPointerException for null keys. + 2011-09-29 Jan Beulich * tools/Makefile.am (TOOLS_ZIP): Make writable the copied subtrees asm/ and classes/. * tools/Makefile.in: Re-generate. +2011-09-09 Andrew John Hughes + + PR classpath/45526: Produce header files for + any inner classes found. + * tools/gnu/classpath/tools/javah/Main.java: + (parsed): Set of class names that have been parsed. + (writeHeader(Map,Printer)): Take a general Map + rather than a specific HashMap. + (parseClasses(Iterator)): Factor out + the parsing of class files into a separate + method so it can be called recursively for + inner classes. + (getClass(String)): Remove redundant cast. + +2011-07-07 Andrew John Hughes + + PR classpath/45527 + * tools/gnu/classpath/tools/javah/JniHelper.java: + (mangle(String)): Replace '$' with '_' rather than + encoding it as hex. + +2011-07-07 Andrew John Hughes + + PR classpath/40188 + * tools/gnu/classpath/tools/javah/JniIncludePrinter.java: + (writeFields(ClassWrapper,JniPrintStream)): Retain a + reference to the original class and use it in naming + fields, as opposed to the class in which it occurs. + +2011-07-05 Pekka Enberg + + * configure.ac: + Check for clock_gettime(). + native/jni/java-lang/java_lang_VMSystem.c: + (Java_java_lang_VMSystem_nanoTime): + Fix compile error on systems that don't have clock_gettime(). + +2011-06-27 Andrew John Hughes + + Fix issues with building with -Werror and gcc 4.6. + * native/jni/gtk-peer/GtkDragSourceContextPeer.c: + (Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor): + Remove unused ptr variable and mark env as unused. + (connect_signals_for_widget(GtkWidget*)): Mark w unused and don't set it. + (Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag): + Remove unused ptr variable. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c: + (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): + Remove unused width and height variables. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c: + (Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseMove): + Check result of XTestFakeMotionEvent call. + (Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mousePress): Likewise for + XTestFakeButtonEvent call. + (Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseRelease): Likewise. + (Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress): Use g_message + instead of deprecated g_printerr. Check result of XTestFakeKeyEvent. + (Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease): Likewise. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c: + (Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup): + Completely disable code to attach parent, including use of ptr2 + and parent argument, and reinstate original FIXME to explain why. + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c: + (Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels): + Remove unused depth variable. + * native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c, + (Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1): + Check return values and throw an InternalError if a problem occurs. + +2011-05-29 Pekka Enberg + + * lib/Makefile.am: + Generate META-INF/INDEX.LST for glibj.zip. + +2011-04-25 Pekka Enberg + + * java/util/regex/Matcher.java: + (quoteReplacement): Implement missing Java 1.5 API method. + +2011-03-30 Gert Brettlecker + + PR classpath/42823 + * native/jni/java-net/java_net_VMInetAddress.c, + (Java_VMInetAddress_getHostByAddr(JNIEnv*,jclass,jarray)): + Free address structure after use. + (Java_java_net_VMInetAddress_aton(JNIEnv*,jclass,jstring)): + Release UTF string after use. + +2011-03-17 Pekka Enberg + + * native/jni/java-nio/java_nio_VMDirectByteBuffer.c: + (Java_java_nio_VMDirectByteBuffer_allocate): Check for negative + capacity. + +2011-03-14 Andrew John Hughes + + PR classpath/42390 + * java/net/Socket.java: + (connect(SocketAddress, int)): Add missing call + to SecurityManager. + +2011-03-15 Jeroen Frijters + + PR classpath/48131 + * java/util/zip/InflaterHuffmanTree.java: + (buildTree): Handle empty tree. + +2011-03-14 Pekka Enberg + + * javax/swing/text/html/StyleSheet.java: + (resolveStyle()): Fix misuse of ArrayList.set(). + +2011-02-22 Andrew John Hughes + + PR classpath/42390 + * java/security/ProtectionDomain.java: + (toString()): Don't include permissions from + the policy if we don't have permission to read + it. + +2011-03-02 Pekka Enberg + + * java/util/regex/Matcher: + (find): Make sure match is within input data limits. + +2011-02-22 Pekka Enberg + + * java/util/HashMap: + (put): Check for key hashCode equality before invoking + Object.equals() to fix compatibility issue with Jython. + +2011-02-22 Pekka Enberg + + * java/util/HashMap: + (DEFAULT_CAPACITY): Make default initial capacity 16 as it is + defined in official Javadocs. + +2010-02-16 Pekka Enberg + + * java/util/Formatter.java: + (parseInt): Use Integer.parseInt() insted of Integer.decode() + because the latter doesn't work with leading zeros which are + used in String.format() formatting, for example. + +2010-07-02 Ivan Maidanski + + * java/util/regex/Pattern.java: + (quote): Implement new 1.5 Java API method. + +2011-01-23 Pekka Enberg + + * java/io/PrintStream.java + (PrintStream): Throw NullPointerException if out or encoding + is null to be compatible with OpenJDK. + +2011-01-22 Pekka Enberg + + * native/jni/java-lang/java_lang_VMSystem.c + (Java_java_lang_VMSystem_nanoTime): Fallback to + gettimeofday() if clock_gettime(CLOCK_MONOTONIC) fails. + +2011-01-22 Pekka Enberg + + * native/jni/java-lang/java_lang_VMSystem.c + (currentTimeMillis): Rename currentTimeMillis to + currentTimeMicros to reflect what the function returns. + +2011-01-21 Pekka Enberg + + * java/lang/Class.java: + (getDeclaredField): Throw NullPointerException instead of + NoSuchFieldException if name is null. + (getField): Likewise. + (getDeclaredMethod): Throw NullPointerException instead of + NoSuchMethodException if name is null. + (getMethod): Likewise. + +2010-12-25 Andrew John Hughes + + PR classpath/42390 + * java/io/File.java: + (isHidden()): Add and document missing + security check. + +2010-12-25 Andrew John Hughes + + PR classpath/42390 + * java/util/logging/LogManager.java: + (addPropertyChangeListener(PropertyChangeListener)): + Document fully. Throw NPE in a clearer way. Add + SecurityException. + (removePropertyChangeListener(PropertyChangeListener)): + Document fully. Add SecurityException. + +2010-12-25 Andrew John Hughes + + PR classpath/42390 + * java/io/ObjectOutputStream.java: + (ObjectOutputStream(OutputStream)): Add + required security check. + (overridesMethods(Class)): Check whether + the subclass overrides one of the methods + which requires a security check. + +2010-12-24 Andrew John Hughes + + * java/security/ProtectionDomain.java, + (hasAllPermissions): Add new field. + (ProtectionDomain(CodeSource,PermissionCollection, + ClassLoader,Principal,boolean)): Check if permission + collection includes AllPermission and, if so, set + hasAllPermissions. + (implies(Permission)): Immediately return true if + hasAllPermissions is set. + +2006-07-21 Tom Tromey + + * vm/reference/java/lang/VMClass.java: + (getSimpleName()): Use implementation from + gcj. + +2010-12-02 Andrew John Hughes + + PR classpath/46775 + * vm/reference/java/security/VMAccessController.java: + (DEFAULT_CONTEXT): Create ProtectionDomain with + four argument constructor (arguments are the same + as those implied by the two argument constructor). + (getContext()): Create ProtectionDomain instances + with four argument constructor using a null Principal + array (as before) but including the classloader, which + was always null before. + +2010-11-04 Andrew John Hughes + + * config.rpath: + Add file required by autogen.sh due to use + of AM_ICONV. + * m4/ax_func_which_gethostbyname_r.m4: + Use AC_LANG_SOURCE as suggested by warnings from + autoconf 2.68. + +2010-11-04 Andrew John Hughes + + Provide a fallback for systems without POSIX timers. + * native/jni/java-lang/java_lang_VMSystem.c: + (currentTimeMillis): New function which provides + the behaviour for both Java_java_lang_VMSystem_currentTimeMillis + and the fallback by obtaining the result of gettimeofday. + (Java_java_lang_VMSystem_nanoTime): Return currentTimeMillis + multiplied by a 1000 if a monotonic clock is unavailable. + (Java_java_lang_VMSystem_currentTimeMillis): Split main behaviour + out into currentTimeMillis and then return its result divided by a + 1000. + +2010-07-08 Roland Brand + Pekka Enberg + + PR classpath/44411 + * native/jni/java-lang/java_lang_VMSystem.c: + (Java_java_lang_VMSystem_nanoTime): Implement + using POSIX monotonic clock support and clock_gettime. + (Java_java_lang_VMSystem_currentTimeMillis): + Use old nanoTime method (which uses gettimeofday) to + provide the current time in milliseconds. + * vm/reference/java/lang/VMSystem.java: + (currentTimeMillis()): Make native with its own implementation + rather than using nanoTime, which should be + independent of wall-clock time. + +2010-05-09 Ivan Maidanski + + * gnu/java/security/Properties.java: Only + initialise log if Configuration.DEBUG is true. + * gnu/java/security/der/DERWriter.java: + (toUtf8(String)): Calculate 1.5 * len using + len + (len >> 1) to avoid multiplication by a floating-point + number. + * gnu/java/security/hash/Whirlpool.java: Only + initialise log if Configuration.DEBUG is true. + * gnu/java/security/jce/sig/EncodedKeyFactory.java: Likewise. + * gnu/java/security/jce/sig/SignatureAdapter.java: Likewise. + * gnu/java/security/key/dss/DSSKeyPairGenerator.java: Likewise. + * gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java: Likewise. + * gnu/java/security/key/rsa/RSAKeyPairGenerator.java: Likewise. + * gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java: Likewise. + * gnu/java/security/key/rsa/RSAKeyPairX509Codec.java: Likewise. + * gnu/java/security/pkcs/PKCS7SignedData.java: Likewise. + * gnu/java/security/pkcs/SignerInfo.java: Likewise. + (SignerInfo(BERReader)): Only print version if Configuration.DEBUG is + true, as with other output. + * gnu/java/security/provider/PKIXCertPathValidatorImpl.java: + Only initialise log if Configuration.DEBUG is true. + * gnu/java/security/sig/rsa/EMSA_PSS.java: Likewise. + * gnu/java/security/sig/rsa/RSAPSSSignature.java: Likewise. + * gnu/java/security/x509/X509CRL.java: Likewise. + * gnu/java/security/x509/X509CRLEntry.java: Likewise. + * gnu/java/security/x509/ext/Extension.java: Likewise. + * gnu/javax/crypto/cipher/Anubis.java: Likewise. + * gnu/javax/crypto/cipher/BaseCipher.java: Likewise. + * gnu/javax/crypto/cipher/Khazad.java: Likewise. + * gnu/javax/crypto/cipher/Rijndael.java: Likewise. + * gnu/javax/crypto/cipher/Twofish.java: Likewise. + * gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java: Likewise. + * gnu/javax/crypto/jce/keyring/GnuKeyring.java: Likewise. + * gnu/javax/crypto/jce/params/BlockCipherParameters.java: Likewise. + * gnu/javax/crypto/jce/prng/ICMRandomSpi.java: Likewise. + * gnu/javax/crypto/jce/prng/UMacRandomSpi.java: Likewise. + * gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java: Likewise. + (sha): Drop unused variable. + (rnd): Use implicit initialisation to null as with other variables. + * gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java: + Only initialise log if Configuration.DEBUG is true. + * gnu/javax/crypto/keyring/Entry.java: Likewise. + * gnu/javax/crypto/keyring/EnvelopeEntry.java: Likewise. + * gnu/javax/crypto/keyring/GnuPublicKeyring.java: Likewise. + * gnu/javax/crypto/mac/OMAC.java: Likewise. + * gnu/javax/crypto/pad/BasePad.java: Likewise. + * gnu/javax/crypto/pad/PKCS1_V1_5.java: Likewise. + * gnu/javax/crypto/pad/PKCS7.java: Likewise. + * gnu/javax/crypto/pad/TBC.java: Likewise. + * gnu/javax/crypto/prng/CSPRNG.java: Likewise. + (getSystemInstance()): Clarify bracketing of for loop + and ignorance of exceptions in the OTHER case. + * gnu/javax/crypto/sasl/SaslInputStream.java: + Only initialise log if Configuration.DEBUG is true. + * gnu/javax/crypto/sasl/SaslOutputStream.java: Likewise. + * gnu/javax/crypto/sasl/srp/SRPClient.java: Likewise. + * gnu/javax/crypto/sasl/srp/SRPServer.java: Likewise. + * gnu/javax/security/auth/login/ConfigFileParser.java: Likewise. + (map): Make final. + * gnu/javax/security/auth/login/ConfigFileTokenizer.java: + Only initialise log if Configuration.DEBUG is true. + (br): Make final. + (ConfigFileTokenizer(Reader)): Remove explicit initialisation of + initialised and call to superclass when superclass is Object. + * gnu/javax/security/auth/login/GnuConfiguration.java: + Only iniialise log if Configuration.DEBUG is true. + * java/math/BigInteger.java: Likewise. + +2010-04-12 Ivan Maidanski + + PR classpath/40889 + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c: + (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Convert gtktoolkit + value to a global reference (to be accessible in set_running_flag, + clear_running_flag). + +2010-04-12 Ivan Maidanski + + * native/jni/classpath/jcl.c: + Simplify attribute #ifndef block. + (JCL_POINTER_CLASSNAME): Define dependent on size of void*. + (JCL_POINTER_DATASIGN): Likewise. + (JCL_POINTER_INTTYPE): Likewise. + (JCL_POINTER_GETFIELD): Likewise. + (JNI_OnLoad): Define only if not JCL_NO_JNIONLOAD. + Use JCL_POINTER_xxx macros instead of SIZEOF_VOID_P. + (JCL_NewRawDataObject): Use JCL_POINTER_xxx macros instead of SIZEOF_VOID_P. + Initialize rawDataClass, rawData_fid, rawData_mid global variables if JCL_NO_JNIONLOAD. + (JCL_realloc): Don't call free() for NULL pointer. + (JCL_GetRawData): Use JCL_POINTER_xxx macros instead of SIZEOF_VOID_P. + Initialize rawDataClass, rawData_fid, rawData_mid global variables + if JCL_NO_JNIONLOAD. + +2010-07-30 Andrew Haley + + * javax/print/attribute/standard/JobStateReasons.java (add): Fix + infinite recursion with call to super. + +2010-07-13 Jeroen Frijters + + * java/util/zip/ZipFile.java: + (readEntries): Throw exception when an encrypted entry is encountered. + +2010-07-13 Daniel Noll + + * java/util/zip/InflaterHuffmanTree.java: + (buildTree): Fix for #36560. + +2010-04-12 Ivan Maidanski + + * vm/reference/gnu/classpath/VMStackWalker.java: Make the default + constructor private. + * vm/reference/gnu/classpath/VMSystemProperties.java: Likewise and make class final. + * vm/reference/gnu/java/lang/VMCPStringBuilder.java: Likewise. + * vm/reference/gnu/java/lang/VMInstrumentationImpl.java: Likewise. + * vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java: + Likewise. + * vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java: Likewise. + Make class non-public and add missing full stop in comment. + * vm/reference/gnu/java/nio/VMPipe.java: Make the default constructor private. + * vm/reference/gnu/java/nio/VMSelector.java: Likewise and make class non-public. + * vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java: + Make the default constructor private. + (Spinner.stop()): Make package-private to ease access from enclosing class. + * vm/reference/java/io/VMFile.java: Make the default constructor private. + Fix punctuation in documentation. + (getTotalSpace(String)): Make package-private. + (getFreeSpace(String)): Likewise. + (getUsableSpace(String)): Likewise. + (setReadable(String,boolean,boolean)): Likewise. + (setExecutable(String,boolean,boolean)): Likewise. + (toCanonicalForm(String)): Likewise. + * vm/reference/java/io/VMObjectInputStream.java: Make default constructor private. + * vm/reference/java/io/VMObjectStreamClass.java: Likewise. + * vm/reference/java/lang/VMClassLoader.java: Likewise. + * vm/reference/java/lang/VMCompiler.java: + (compileClass(Class)): Make package-private. + (compileClasses(String)): Likewise. + (command(String)): Likewise. + (enable()): Likewise. + (disable()): Likewise. + * vm/reference/java/lang/VMDouble.java: Make constructor package-private. + (doubleToRawLongBits(double)): Make package-private. + (longBitsToDouble(long)): Likewise. + (toString(double, boolean)): Likewise. + (initIDs()): Make private. + (parseDouble(String)): Make package-private. + * vm/reference/java/lang/VMFloat.java: Make constructor package-private. + * vm/reference/java/lang/VMMath.java: Likewise and make class final. + (sin(double)): Make package-private. + (cos(double)): Likewise. + (tan(double)): Likewise. + (asin(double)): Likewise. + (acos(double)): Likewise. + (atan(double)): Likewise. + (atan2(double, double)): Likewise. + (exp(double)): Likewise. + (log(double)): Likewise. + (sqrt(double)): Likewise. + (pow(double)): Likewise. + (IEEEremainder(double, double)): Likewise. + (ceil(double)): Likewise. + (floor(double)): Likewise. + (rint(double)): Likewise. + (cbrt(double)): Likewise. + (cosh(double)): Likewise. + (expm1(double)): Likewise. + (hypot(double)): Likewise. + (log10(double)): Likewise. + (log1p(double)): Likewise. + (sinh(double)): Likewise. + (tanh(double)): Likewise. + * vm/reference/java/lang/VMObject.java: Make constructor package-private. + * vm/reference/java/lang/VMString.java: Likewise. + * vm/reference/java/lang/VMSystem.java: Likewise. + (mapLibraryName(String)): Remove the commented out function (since + exists in VMRuntime). + (currentTimeMillis()): Make package-private. + (nanoTime()): Likewise. + * vm/reference/java/lang/management/VMManagementFactory.java: + Make constructor package-private. + * vm/reference/java/lang/reflect/VMArray.java: Make constructor + package-private and class final. + * vm/reference/java/lang/reflect/VMProxy.java: Make constructor + package-private. + * vm/reference/java/net/VMInetAddress.java: Make constructor package-private + and class final.. + (getLocalHostname()): Make package-private. + (lookupInaddrAny()): Likewise. + (getHostByAddr(byte[])): Likewise. + (getHostByName(String)): Likewise. + (aton(String)): Likewise. + * vm/reference/java/net/VMURLConnection.java: Make constructor package-private. + (LENGTH): Likewise. + * vm/reference/java/nio/VMDirectByteBuffer.java: Make constructor package-private. + Fix indenting. + * vm/reference/java/security/VMSecureRandom.java: Make constructor package-private. + Make the default constructor private. + (Spinner.stop()): Make package-private to ease access from enclosing class. + * vm/reference/java/util/VMTimeZone.java: Make constructor package-private. + * vm/reference/sun/misc/Unsafe.java: Make class final. + (unsafe): Make final. + +2010-06-21 Andrew John Hughes + + * tools/Makefile.am: + Fix patch to message bundles. + +2010-04-12 Ivan Maidanski + + * examples/gnu/classpath/examples/swing/Demo.java: + (mkMenuBar): Don't pass null as a second argument to getMethod() (to suppress + a warning). + * resource/gnu/javax/print/PrinterDialog.properties: Rename to + "MessagesBundle.properties" (to prevent class name collision + in case the properties file is converted to a class). + * resource/gnu/javax/print/PrinterDialog_de.properties: Likewise. + * gnu/javax/print/PrinterDialog.java (messages): Get resources from + "gnu.javax.print.MessagesBundle" bundle instead of + "gnu/javax/print/PrinterDialog" one. + * tools/gnu/classpath/tools/common/Messages.java (BUNDLE_NAME): + Convert "gnu.classpath.tools.common.Messages" to lowercase (to be + consistent with other tools resource bundle names and to prevent class + name collision in case the properties file is converted to a class). + * tools/resource/gnu/classpath/tools/common/Messages.properties: + Rename to "messages.properties". + * tools/resource/gnu/classpath/tools/getopt/Messages.properties: + Likewise. + * testsuite/javax.swing.text.html.parser/test/gnu/javax/swing/text/html/parser/Parser_Test.java: + Rename "enum" local variable to "en". + * testsuite/javax.swing.text.html.parser/test/gnu/javax/swing/text/html/parser/ParserTest.java: + Likewise. + +2010-06-05 Mark Wielaard + + * doc/cp-tools.texinfo: Move copying information in @copying section. + 2010-06-03 Andrew John Hughes * examples/gnu/classpath/examples/CORBA/NamingService/Demo.java, diff --git a/libjava/classpath/INSTALL b/libjava/classpath/INSTALL index 7d1c323beae..a1e89e18ad2 100644 --- a/libjava/classpath/INSTALL +++ b/libjava/classpath/INSTALL @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, -2006, 2007, 2008, 2009 Free Software Foundation, Inc. +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -226,6 +226,11 @@ order to use an ANSI C compiler: and if that doesn't work, install pre-built binaries of GCC for HP-UX. + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended diff --git a/libjava/classpath/NEWS b/libjava/classpath/NEWS index 095f9700b8d..dd2e1568ff2 100644 --- a/libjava/classpath/NEWS +++ b/libjava/classpath/NEWS @@ -1,4 +1,52 @@ -New in release 0.99 (XXX XX, XXXX) +New in release 0.99 (Mar 08, 2012) + +* Addition of java.util.regex.Pattern.quote. +* Addition of java.io.IOError. +* Addition of java.io.Console. +* Bug fixes: + - PR39408: gjavah doesn't generate constants in header files where they occur in a superclass + - PR40590: namespace namespace broken in CNI + - PR40630: java.util.Scanner fails when used for charset generation by the OpenJDK build + - PR40653: Issue with XML stream writer and namespaces + - PR40663: Support Stax API 1.0.1 + - PR39177: trunk revision 144128 - jar: internal error: java.lang.NullPointerException + - PR41696: java.util.zip.Inflater:finished () returns false when it should return true + - PR43536: CopyOnWriteArrayList bug in delete() when empty + - PR36560: java.util.zip: Error parsing zip file with larger files in it + - Restrict access to VM classes. + - Cleanup use of message resources. + - Throw exception when encrypted zip file entries are encountered. + - Fix infinite recursion in javax.print.attribute.standard.JobStateReasons.add. + - Native code cleanups in GtkToolkit.c and jcl.c. + - Only log when debugging is on. + - PR44411: System.nanoTime() is not independent of wall-clock time + - PR46775: Calling Policy.setPolicy with a new Policy object has no effect on the DefaultSecurityManager + - Use implementation of VMClass.getSimpleName from gcj. + - Simplify security determination in ProtectionDomain in situations where all permissions are available. + - PR42390: Missing Security Manager checks in classpath apis + - Throw NullPointerExceptions appropriately for compatibility with OpenJDK. + - Use Integer.parseInt in preference to Integer.decode in java.util.Formatter. + - Use same default capacity in java.util.HashMap as documented in OpenJDK. + - Check for hashcode equality before calling equals in java.util.HashMap.put + - Make sure match is within input data limits in java.util.regex.Matcher.find. + - Fix misuse of ArrayList.set in javax.swing.text.html.StyleSheet.resolveStyle. + - PR48131: java.util.zip.ZipException: incomplete dynamic bit lengths tree + - Check for negative capacity in VMDirectByteBuffer's native code. + - PR42823: tcp/ip sockets read/write operations causes memory leak + - Generate META-INF/INDEX.LST for glibj.zip + - Fix issues when building with -Werror and gcc 4.6. + - PR40188: javah creates constants using name of superclass + - PR45527: gjavah encodes $ as used in inner classes as 00024 where Oracle's javah does not + - PR45526: gjavah does not implicitly produce header files for inner classes + - Fix NullPointerException for null keys in java.util.HashMap.put. + - Fix BEAST security issue in gnu.javax.net.ssl.provider. + - RH712013: pdftk crashes with java.lang.ArrayIndexOutOfBoundsException +* Updated to libtool 2.x. +* Lots of warning fixes / addition of generics. +* Fix license headers in tools. +* Normalise whitespace. +* Maintenance work on javac detection. +* Mark plugin as unmaintained and disable by default. New in release 0.98 (Feb 05, 2009) diff --git a/libjava/classpath/config.guess b/libjava/classpath/config.guess index aeb53233ecb..b02565c7b2f 100755 --- a/libjava/classpath/config.guess +++ b/libjava/classpath/config.guess @@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. -timestamp='2008-12-18' +timestamp='2011-06-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -27,16 +27,16 @@ timestamp='2008-12-18' # the same distribution terms that you use for the rest of that program. -# Originally written by Per Bothner . -# Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# Originally written by Per Bothner. Please send patches (context +# diff format) to and include a ChangeLog +# entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # -# The plan is that this can be called by configure scripts if you -# don't specify an explicit build system type. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` @@ -56,8 +56,9 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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." @@ -170,7 +171,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep __ELF__ >/dev/null + | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? @@ -180,7 +181,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in fi ;; *) - os=netbsd + os=netbsd ;; esac # The OS release @@ -223,7 +224,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on @@ -269,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead @@ -295,7 +299,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo s390-ibm-zvmoe exit ;; *:OS400:*:*) - echo powerpc-ibm-os400 + echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} @@ -324,12 +328,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" @@ -388,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} - exit ;; + exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; @@ -474,8 +484,8 @@ EOF echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ @@ -488,7 +498,7 @@ EOF else echo i586-dg-dgux${UNAME_RELEASE} fi - exit ;; + exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; @@ -545,7 +555,7 @@ EOF echo rs6000-ibm-aix3.2 fi exit ;; - *:AIX:*:[456]) + *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 @@ -588,52 +598,52 @@ EOF 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac + esac ;; + esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + sed 's/^ //' << EOF >$dummy.c - #define _HPUX_SOURCE - #include - #include + #define _HPUX_SOURCE + #include + #include - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa @@ -653,7 +663,7 @@ EOF # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null + grep -q __LP64__ then HP_ARCH="hppa2.0w" else @@ -724,22 +734,22 @@ EOF exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd - exit ;; + exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi - exit ;; + exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd - exit ;; + exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd - exit ;; + exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd - exit ;; + exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; @@ -763,14 +773,14 @@ EOF exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} @@ -798,18 +808,18 @@ EOF echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in + *:Interix*:*) + case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; - EM64T | authenticamd | genuineintel) + authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) @@ -819,6 +829,9 @@ EOF [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we @@ -848,6 +861,20 @@ EOF i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi + echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ @@ -855,7 +882,13 @@ EOF then echo ${UNAME_MACHINE}-unknown-linux-gnu else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabihf + fi fi exit ;; avr32*:Linux:*:*) @@ -868,7 +901,18 @@ EOF echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo frv-unknown-linux-gnu + exit ;; + i*86:Linux:*:*) + LIBC=gnu + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #ifdef __dietlibc__ + LIBC=dietlibc + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -879,78 +923,34 @@ EOF m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - mips:Linux:*:*) + mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU - #undef mips - #undef mipsel + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mipsel + CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips + CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef mips64 - #undef mips64el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=mips64el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=mips64 - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-gnu + exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in @@ -959,14 +959,17 @@ EOF *) echo hppa-unknown-linux-gnu ;; esac exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-gnu + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu @@ -974,6 +977,9 @@ EOF sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; @@ -981,68 +987,8 @@ EOF echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; - i*86:Linux:*:*) - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. cd to the root directory to prevent - # problems with other programs or directories called `ld' in the path. - # Set LC_ALL=C to ensure ld outputs messages in English. - ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ - | sed -ne '/supported targets:/!d - s/[ ][ ]*/ /g - s/.*supported targets: *// - s/ .*// - p'` - case "$ld_supported_targets" in - elf32-i386) - TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" - ;; - a.out-i386-linux) - echo "${UNAME_MACHINE}-pc-linux-gnuaout" - exit ;; - "") - # Either a pre-BFD a.out linker (linux-gnuoldld) or - # one that does not give us useful --help. - echo "${UNAME_MACHINE}-pc-linux-gnuoldld" - exit ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both @@ -1050,11 +996,11 @@ EOF echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. + # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) @@ -1071,7 +1017,7 @@ EOF i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) @@ -1086,7 +1032,7 @@ EOF fi exit ;; i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. + # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; @@ -1114,10 +1060,13 @@ EOF exit ;; pc:*:*:*) # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit ;; + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; @@ -1152,8 +1101,18 @@ EOF /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; @@ -1166,7 +1125,7 @@ EOF rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) @@ -1186,10 +1145,10 @@ EOF echo ns32k-sni-sysv fi exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm @@ -1215,11 +1174,11 @@ EOF exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv${UNAME_RELEASE} else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv${UNAME_RELEASE} fi - exit ;; + exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; @@ -1259,6 +1218,16 @@ EOF *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in + i386) + eval $set_cc_for_build + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + UNAME_PROCESSOR="x86_64" + fi + fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} @@ -1274,6 +1243,9 @@ EOF *:QNX:*:4*) echo i386-pc-qnx exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; @@ -1319,13 +1291,13 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` + UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; @@ -1340,6 +1312,9 @@ EOF i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 @@ -1362,11 +1337,11 @@ main () #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 - "4" + "4" #else - "" + "" #endif - ); exit (0); + ); exit (0); #endif #endif diff --git a/libjava/classpath/config.sub b/libjava/classpath/config.sub index 9489dc7867b..78176a44029 100755 --- a/libjava/classpath/config.sub +++ b/libjava/classpath/config.sub @@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +# 2011 Free Software Foundation, Inc. -timestamp='2008-12-11' +timestamp='2011-10-29' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -32,13 +32,16 @@ timestamp='2008-12-11' # Please send patches to . Submit a context -# diff and a properly formatted ChangeLog entry. +# diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. @@ -72,8 +75,9 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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." @@ -120,8 +124,10 @@ esac # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` @@ -148,10 +154,13 @@ case $os in -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray) + -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; + -bluegene*) + os=-cnk + ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 @@ -166,10 +175,10 @@ case $os in os=-chorusos basic_machine=$1 ;; - -chorusrdb) - os=-chorusrdb + -chorusrdb) + os=-chorusrdb basic_machine=$1 - ;; + ;; -hiux*) os=-hiuxwe2 ;; @@ -242,13 +251,17 @@ case $basic_machine in | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ + | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ + | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ + | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ @@ -271,28 +284,42 @@ case $basic_machine in | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | moxie \ | mt \ | msp430 \ + | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ + | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ + | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12) + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | picochip) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none @@ -303,6 +330,18 @@ case $basic_machine in basic_machine=mt-unknown ;; + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. @@ -322,20 +361,23 @@ case $basic_machine in | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ + | be32-* | be64-* \ | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ + | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ @@ -357,24 +399,29 @@ case $basic_machine in | mmix-* \ | mt-* \ | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ - | romp-* | rs6000-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ | tron-* \ - | v850-* | v850e-* | vax-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) @@ -399,7 +446,7 @@ case $basic_machine in basic_machine=a29k-amd os=-udi ;; - abacus) + abacus) basic_machine=abacus-unknown ;; adobe68k) @@ -445,6 +492,10 @@ case $basic_machine in basic_machine=m68k-apollo os=-bsd ;; + aros) + basic_machine=i386-pc + os=-aros + ;; aux) basic_machine=m68k-apple os=-aux @@ -461,11 +512,24 @@ case $basic_machine in basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; c90) basic_machine=c90-cray os=-unicos ;; - cegcc) + cegcc) basic_machine=arm-unknown os=-cegcc ;; @@ -497,7 +561,7 @@ case $basic_machine in basic_machine=craynv-cray os=-unicosmp ;; - cr16) + cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; @@ -713,6 +777,9 @@ case $basic_machine in basic_machine=ns32k-utek os=-sysv ;; + microblaze) + basic_machine=microblaze-xilinx + ;; mingw32) basic_machine=i386-pc os=-mingw32 @@ -753,6 +820,10 @@ case $basic_machine in basic_machine=i370-ibm os=-mvs ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; ncr3000) basic_machine=i486-ncr os=-sysv4 @@ -817,6 +888,12 @@ case $basic_machine in np1) basic_machine=np1-gould ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; nsr-tandem) basic_machine=nsr-tandem ;; @@ -899,9 +976,10 @@ case $basic_machine in ;; power) basic_machine=power-ibm ;; - ppc) basic_machine=powerpc-unknown + ppc | ppcbe) basic_machine=powerpc-unknown ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown @@ -995,6 +1073,9 @@ case $basic_machine in basic_machine=i860-stratus os=-sysv4 ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; sun2) basic_machine=m68000-sun ;; @@ -1051,20 +1132,8 @@ case $basic_machine in basic_machine=t90-cray os=-unicos ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; tile*) - basic_machine=tile-unknown + basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) @@ -1134,6 +1203,9 @@ case $basic_machine in xps | xps100) basic_machine=xps100-honeywell ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; ymp) basic_machine=ymp-cray os=-unicos @@ -1231,9 +1303,12 @@ esac if [ x"$os" != x"" ] then case $os in - # First match some system type aliases - # that might get confused with valid system types. + # First match some system type aliases + # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; @@ -1254,10 +1329,11 @@ case $os in # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ + | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ @@ -1268,7 +1344,8 @@ case $os in | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ + | -mingw32* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ @@ -1276,7 +1353,7 @@ case $os in | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) @@ -1315,7 +1392,7 @@ case $os in -opened*) os=-openedition ;; - -os400*) + -os400*) os=-os400 ;; -wince*) @@ -1364,7 +1441,7 @@ case $os in -sinix*) os=-sysv4 ;; - -tpf*) + -tpf*) os=-tpf ;; -triton*) @@ -1409,6 +1486,8 @@ case $os in -dicos*) os=-dicos ;; + -nacl*) + ;; -none) ;; *) @@ -1431,10 +1510,10 @@ else # system, and we'll never get to this point. case $basic_machine in - score-*) + score-*) os=-elf ;; - spu-*) + spu-*) os=-elf ;; *-acorn) @@ -1446,8 +1525,17 @@ case $basic_machine in arm*-semi) os=-aout ;; - c4x-* | tic4x-*) - os=-coff + c4x-* | tic4x-*) + os=-coff + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff ;; # This must come before the *-dec entry. pdp10-*) @@ -1474,7 +1562,7 @@ case $basic_machine in m68*-cisco) os=-aout ;; - mep-*) + mep-*) os=-elf ;; mips*-cisco) @@ -1501,7 +1589,7 @@ case $basic_machine in *-ibm) os=-aix ;; - *-knuth) + *-knuth) os=-mmixware ;; *-wec) @@ -1606,7 +1694,7 @@ case $basic_machine in -sunos*) vendor=sun ;; - -aix*) + -cnk*|-aix*) vendor=ibm ;; -beos*) diff --git a/libjava/classpath/configure b/libjava/classpath/configure index a25f5f75a47..5874086aa0c 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.64 for GNU Classpath 0.99-pre. +# Generated by GNU Autoconf 2.64 for GNU Classpath 0.99. # # Report bugs to . # @@ -559,8 +559,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU Classpath' PACKAGE_TARNAME='classpath' -PACKAGE_VERSION='0.99-pre' -PACKAGE_STRING='GNU Classpath 0.99-pre' +PACKAGE_VERSION='0.99' +PACKAGE_STRING='GNU Classpath 0.99' PACKAGE_BUGREPORT='classpath@gnu.org' PACKAGE_URL='http://www.gnu.org/software/classpath/' @@ -1490,7 +1490,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.99-pre to adapt to many kinds of systems. +\`configure' configures GNU Classpath 0.99 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1565,7 +1565,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Classpath 0.99-pre:";; + short | recursive ) echo "Configuration of GNU Classpath 0.99:";; esac cat <<\_ACEOF @@ -1757,7 +1757,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU Classpath configure 0.99-pre +GNU Classpath configure 0.99 generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. @@ -2586,7 +2586,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by GNU Classpath $as_me 0.99-pre, which was +It was created by GNU Classpath $as_me 0.99, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -3621,7 +3621,7 @@ fi # Define the identity of the package. PACKAGE='classpath' - VERSION='0.99-pre' + VERSION='0.99' cat >>confdefs.h <<_ACEOF @@ -17059,6 +17059,65 @@ fi rm -f conftest* + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5 +$as_echo_n "checking for library containing clock_gettime... " >&6; } +if test "${ac_cv_search_clock_gettime+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +for ac_lib in '' rt; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if test x$gcc_no_link = xyes; then + as_fn_error "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 +fi +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_clock_gettime=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_clock_gettime+set}" = set; then : + break +fi +done +if test "${ac_cv_search_clock_gettime+set}" = set; then : + +else + ac_cv_search_clock_gettime=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5 +$as_echo "$ac_cv_search_clock_gettime" >&6; } +ac_res=$ac_cv_search_clock_gettime +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5 $as_echo_n "checking for library containing inet_pton... " >&6; } if test "${ac_cv_search_inet_pton+set}" = set; then : @@ -17166,11 +17225,12 @@ _ACEOF fi + for ac_func in ftruncate fsync select \ gethostname socket strerror fork pipe execve open close \ lseek fstat read readv write writev htonl memset htons connect \ getsockname getpeername bind listen accept \ - recvfrom send sendto setsockopt getsockopt time mktime \ + recvfrom send sendto setsockopt getsockopt time mktime clock_gettime \ gethostbyname_r localtime_r \ strerror_r \ fcntl \ @@ -17663,7 +17723,8 @@ ac_cv_func_which_gethostbyname_r=unknown # cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + + #include int main () { @@ -17689,7 +17750,8 @@ if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + + #include int main () { @@ -17721,7 +17783,8 @@ if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + + #include int main () { @@ -17753,7 +17816,8 @@ if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include + + #include int main () { @@ -23814,7 +23878,7 @@ else JAVA_TEST=Object.java CLASS_TEST=Object.class cat << \EOF > $JAVA_TEST -/* #line 23817 "configure" */ +/* #line 23881 "configure" */ package java.lang; public class Object @@ -23907,7 +23971,7 @@ EOF if uudecode$EXEEXT Test.uue; then ac_cv_prog_uudecode_base64=yes else - echo "configure: 23910: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 + echo "configure: 23974: 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 @@ -23935,7 +23999,7 @@ JAVA_TEST=Test.java CLASS_TEST=Test.class TEST=Test cat << \EOF > $JAVA_TEST -/* [#]line 23938 "configure" */ +/* [#]line 24002 "configure" */ public class Test { public static void main (String args[]) { System.exit (0); @@ -24143,7 +24207,7 @@ if test "x${use_glibj_zip}" = xfalse || \ JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST - /* #line 24146 "configure" */ + /* #line 24210 "configure" */ public class Test { public static void main(String args) @@ -24988,7 +25052,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU Classpath $as_me 0.99-pre, which was +This file was extended by GNU Classpath $as_me 0.99, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25058,7 +25122,7 @@ General help using GNU software: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -GNU Classpath config.status 0.99-pre +GNU Classpath config.status 0.99 configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/libjava/classpath/configure.ac b/libjava/classpath/configure.ac index 0a267851a19..60121a56356 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.99-pre],[classpath@gnu.org],[classpath]) +AC_INIT([GNU Classpath],[0.99],[classpath@gnu.org],[classpath]) AC_CONFIG_SRCDIR(java/lang/System.java) AC_CONFIG_MACRO_DIR([m4]) @@ -489,13 +489,15 @@ if test "x${COMPILE_JNI}" = xyes; then 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([clock_gettime], [rt]) 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 \ getsockname getpeername bind listen accept \ - recvfrom send sendto setsockopt getsockopt time mktime \ + recvfrom send sendto setsockopt getsockopt time mktime clock_gettime \ gethostbyname_r localtime_r \ strerror_r \ fcntl \ diff --git a/libjava/classpath/depcomp b/libjava/classpath/depcomp index df8eea7e4ce..bd0ac089584 100755 --- a/libjava/classpath/depcomp +++ b/libjava/classpath/depcomp @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2011-12-04.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, +# 2011 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,7 +44,7 @@ Environment variables: object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -90,10 +90,18 @@ if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" + cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -158,10 +166,12 @@ gcc) ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as -## well. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -405,6 +415,52 @@ tru64) rm -f "$tmpdepfile" ;; +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test "$stat" = 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/ \1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/ / + G + p +}' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. @@ -503,7 +559,9 @@ makedepend) touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation diff --git a/libjava/classpath/doc/cp-tools.texinfo b/libjava/classpath/doc/cp-tools.texinfo index f7a2d245e7d..7b4e747319e 100644 --- a/libjava/classpath/doc/cp-tools.texinfo +++ b/libjava/classpath/doc/cp-tools.texinfo @@ -5,7 +5,20 @@ @settitle GNU Classpath Tools Guide @c %**end of header -@setchapternewpage on +@copying +This file documents the Tools included in a standard distribution of the GNU +Classpath project deliverables. + +Copyright @copyright{} 2006, 2007 Free Software Foundation, Inc. + +@quotation +Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies. + +Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. + +Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. +@end quotation +@end copying @c Common macros to support generating man pages: @@ -19,12 +32,9 @@ @end macro @ifinfo -This file documents the Tools included in a standard distribution of the GNU -Classpath project deliverables. - -Copyright (C) 2006, 2007 Free Software Foundation, Inc. - @ifnotplaintext +@setchapternewpage on + @dircategory GNU Libraries @direntry * Classpath Tools: (cp-tools). GNU Classpath Tools Guide @@ -38,14 +48,7 @@ Copyright (C) 2006, 2007 Free Software Foundation, Inc. @page @vskip 0pt plus 1filll -Copyright @copyright{} 2006 Free Software Foundation, Inc. -@sp 2 -Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. - -Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. - +@insertcopying @end titlepage @contents @@ -2435,14 +2438,14 @@ with the header @samp{CVS ID}, you would specify: 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 $ +@@cvsid $Id: cp-tools.texinfo,v 1.9 2012/03/07 15:27:27 gnu_andrew 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 $ + $Id: cp-tools.texinfo,v 1.9 2012/03/07 15:27:27 gnu_andrew Exp $ @end smallexample @end table diff --git a/libjava/classpath/doc/texinfo.tex b/libjava/classpath/doc/texinfo.tex index 91408263bc9..2abda0f3daf 100644 --- a/libjava/classpath/doc/texinfo.tex +++ b/libjava/classpath/doc/texinfo.tex @@ -3,11 +3,11 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2009-08-14.15} +\def\texinfoversion{2012-01-03.09} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007, 2008, 2009 Free Software Foundation, Inc. +% 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as @@ -65,7 +65,6 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} - \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. @@ -93,14 +92,13 @@ \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ +\let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t \let\ptextop=\top -{\catcode`\'=\active -\global\let\ptexquoteright'}% Math-mode def from plain.tex. -\let\ptexraggedright=\raggedright +{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. @@ -118,10 +116,11 @@ % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi +\ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi -\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi -\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi +\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi +\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi @@ -160,15 +159,18 @@ \def\spaceisspace{\catcode`\ =\spacecat} % sometimes characters are active, so we need control sequences. +\chardef\ampChar = `\& \chardef\colonChar = `\: \chardef\commaChar = `\, \chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! +\chardef\hashChar = `\# \chardef\lquoteChar= `\` \chardef\questChar = `\? \chardef\rquoteChar= `\' \chardef\semiChar = `\; +\chardef\slashChar = `\/ \chardef\underChar = `\_ % Ignore a token. @@ -199,36 +201,7 @@ % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % -\def\finalout{\overfullrule=0pt} - -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% -} +\def\finalout{\overfullrule=0pt } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, @@ -246,7 +219,7 @@ \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen - \ifx\eTeXversion\undefined\else % etex gives us more logging + \ifx\eTeXversion\thisisundefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 @@ -257,6 +230,13 @@ \errorcontextlines16 }% +% @errormsg{MSG}. Do the index-like expansions on MSG, but if things +% aren't perfect, it's not the end of the world, being an error message, +% after all. +% +\def\errormsg{\begingroup \indexnofonts \doerrormsg} +\def\doerrormsg#1{\errmessage{#1}} + % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % @@ -267,7 +247,6 @@ \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} -% For @cropmarks command. % Do @cropmarks to get crop marks. % \newif\ifcropmarks @@ -577,7 +556,7 @@ } \def\inenvironment#1{% \ifx#1\empty - out of any environment% + outside of any environment% \else in environment \expandafter\string#1% \fi @@ -589,7 +568,7 @@ \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else - % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 + % The general wording of \badenverr may not be ideal. \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup @@ -599,85 +578,6 @@ \newhelp\EMsimple{Press RETURN to continue.} -%% Simple single-character @ commands - -% @@ prints an @ -% Kludge this until the fonts are right (grr). -\def\@{{\tt\char64}} - -% This is turned off because it was never documented -% and you can use @w{...} around a quote to suppress ligatures. -%% Define @` and @' to be the same as ` and ' -%% but suppressing ligatures. -%\def\`{{`}} -%\def\'{{'}} - -% Used to generate quoted braces. -\def\mylbrace {{\tt\char123}} -\def\myrbrace {{\tt\char125}} -\let\{=\mylbrace -\let\}=\myrbrace -\begingroup - % Definitions to produce \{ and \} commands for indices, - % and @{ and @} for the aux/toc files. - \catcode`\{ = \other \catcode`\} = \other - \catcode`\[ = 1 \catcode`\] = 2 - \catcode`\! = 0 \catcode`\\ = \other - !gdef!lbracecmd[\{]% - !gdef!rbracecmd[\}]% - !gdef!lbraceatcmd[@{]% - !gdef!rbraceatcmd[@}]% -!endgroup - -% @comma{} to avoid , parsing problems. -\let\comma = , - -% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent -% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. -\let\, = \c -\let\dotaccent = \. -\def\ringaccent#1{{\accent23 #1}} -\let\tieaccent = \t -\let\ubaraccent = \b -\let\udotaccent = \d - -% Other special characters: @questiondown @exclamdown @ordf @ordm -% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. -\def\questiondown{?`} -\def\exclamdown{!`} -\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} -\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} - -% Dotless i and dotless j, used for accents. -\def\imacro{i} -\def\jmacro{j} -\def\dotless#1{% - \def\temp{#1}% - \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi - \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi - \else \errmessage{@dotless can be used only with i or j}% - \fi\fi -} - -% The \TeX{} logo, as in plain, but resetting the spacing so that a -% period following counts as ending a sentence. (Idea found in latex.) -% -\edef\TeX{\TeX \spacefactor=1000 } - -% @LaTeX{} logo. Not quite the same results as the definition in -% latex.ltx, since we use a different font for the raised A; it's most -% convenient for us to use an explicitly smaller font, rather than using -% the \scriptstyle font (since we don't reset \scriptstyle and -% \scriptscriptstyle). -% -\def\LaTeX{% - L\kern-.36em - {\setbox0=\hbox{T}% - \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}% - \kern-.15em - \TeX -} - % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and @@ -719,7 +619,7 @@ \else\ifx\temp\offword \plainnonfrenchspacing \else \errhelp = \EMsimple - \errmessage{Unknown @frenchspacing option `\temp', must be on/off}% + \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% \fi\fi } @@ -801,15 +701,6 @@ where each line of input produces a line of output.} \newdimen\mil \mil=0.001in -% Old definition--didn't work. -%\parseargdef\need{\par % -%% This method tries to make TeX break the page naturally -%% if the depth of the box does not fit. -%{\baselineskip=0pt% -%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak -%\prevdepth=-1000pt -%}} - \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. @@ -873,7 +764,7 @@ where each line of input produces a line of output.} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion -% class. WHICH is `l' or `r'. +% class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} @@ -920,6 +811,36 @@ where each line of input produces a line of output.} \temp } +% @| inserts a changebar to the left of the current line. It should +% surround any changed text. This approach does *not* work if the +% change spans more than two lines of output. To handle that, we would +% have adopt a much more difficult approach (putting marks into the main +% vertical list for the beginning and end of each change). This command +% is not documented, not supported, and doesn't work. +% +\def\|{% + % \vadjust can only be used in horizontal mode. + \leavevmode + % + % Append this vertical mode material after the current line in the output. + \vadjust{% + % We want to insert a rule with the height and depth of the current + % leading; that is exactly what \strutbox is supposed to record. + \vskip-\baselineskip + % + % \vadjust-items are inserted at the left edge of the type. So + % the \llap here moves out into the left-hand margin. + \llap{% + % + % For a thicker or thinner bar, change the `1pt'. + \vrule height\baselineskip width1pt + % + % This is the space between the bar and the text. + \hskip 12pt + }% + }% +} + % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} @@ -930,6 +851,7 @@ where each line of input produces a line of output.} \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. + \wlog{texinfo.tex: doing @include of #1^^J}% \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes @@ -1095,109 +1017,6 @@ where each line of input produces a line of output.} } -% @asis just yields its argument. Used with @table, for example. -% -\def\asis#1{#1} - -% @math outputs its argument in math mode. -% -% One complication: _ usually means subscripts, but it could also mean -% an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ active, and distinguish by seeing if the current family is \slfam, -% which is what @var uses. -{ - \catcode`\_ = \active - \gdef\mathunderscore{% - \catcode`\_=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% - } -} -% Another complication: we want \\ (and @\) to output a \ character. -% FYI, plain.tex uses \\ as a temporary control sequence (why?), but -% this is not advertised and we don't care. Texinfo does not -% otherwise define @\. -% -% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. -\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} -% -\def\math{% - \tex - \mathunderscore - \let\\ = \mathbackslash - \mathactive - % make the texinfo accent commands work in math mode - \let\"=\ddot - \let\'=\acute - \let\==\bar - \let\^=\hat - \let\`=\grave - \let\u=\breve - \let\v=\check - \let\~=\tilde - \let\dotaccent=\dot - $\finishmath -} -\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. - -% Some active characters (such as <) are spaced differently in math. -% We have to reset their definitions in case the @math was an argument -% to a command which sets the catcodes (such as @item or @section). -% -{ - \catcode`^ = \active - \catcode`< = \active - \catcode`> = \active - \catcode`+ = \active - \catcode`' = \active - \gdef\mathactive{% - \let^ = \ptexhat - \let< = \ptexless - \let> = \ptexgtr - \let+ = \ptexplus - \let' = \ptexquoteright - } -} - -% Some math mode symbols. -\def\bullet{$\ptexbullet$} -\def\geq{\ifmmode \ge\else $\ge$\fi} -\def\leq{\ifmmode \le\else $\le$\fi} -\def\minus{\ifmmode -\else $-$\fi} - -% @dots{} outputs an ellipsis using the current font. -% We do .5em per period so that it has the same spacing in the cm -% typewriter fonts as three actual period characters; on the other hand, -% in other typewriter fonts three periods are wider than 1.5em. So do -% whichever is larger. -% -\def\dots{% - \leavevmode - \setbox0=\hbox{...}% get width of three periods - \ifdim\wd0 > 1.5em - \dimen0 = \wd0 - \else - \dimen0 = 1.5em - \fi - \hbox to \dimen0{% - \hskip 0pt plus.25fil - .\hskip 0pt plus1fil - .\hskip 0pt plus1fil - .\hskip 0pt plus.5fil - }% -} - -% @enddots{} is an end-of-sentence ellipsis. -% -\def\enddots{% - \dots - \spacefactor=\endofsentencespacefactor -} - -% @comma{} is so commas can be inserted into text without messing up -% Texinfo's parsing. -% -\let\comma = , - % @refill is a no-op. \let\refill=\relax @@ -1262,9 +1081,8 @@ where each line of input produces a line of output.} \newif\ifpdfmakepagedest % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 -% can be set). So we test for \relax and 0 as well as \undefined, -% borrowed from ifpdf.sty. -\ifx\pdfoutput\undefined +% can be set). So we test for \relax and 0 as well as being undefined. +\ifx\pdfoutput\thisisundefined \else \ifx\pdfoutput\relax \else @@ -1279,50 +1097,24 @@ where each line of input produces a line of output.} % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. -% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html -% (and related messages, the final outcome is that it is up to the TeX -% user to double the backslashes and otherwise make the string valid, so -% that's what we do). - -% double active backslashes. -% -{\catcode`\@=0 \catcode`\\=\active - @gdef@activebackslashdouble{% - @catcode`@\=@active - @let\=@doublebackslash} -} - -% To handle parens, we must adopt a different approach, since parens are -% not active characters. hyperref.dtx (which has the same problem as -% us) handles it with this amazing macro to replace tokens, with minor -% changes for Texinfo. It is included here under the GPL by permission -% from the author, Heiko Oberdiek. -% -% #1 is the tokens to replace. -% #2 is the replacement. -% #3 is the control sequence with the string. -% -\def\HyPsdSubst#1#2#3{% - \def\HyPsdReplace##1#1##2\END{% - ##1% - \ifx\\##2\\% - \else - #2% - \HyReturnAfterFi{% - \HyPsdReplace##2\END - }% - \fi - }% - \xdef#3{\expandafter\HyPsdReplace#3#1\END}% -} -\long\def\HyReturnAfterFi#1\fi{\fi#1} - -% #1 is a control sequence in which to do the replacements. -\def\backslashparens#1{% - \xdef#1{#1}% redefine it as its expansion; the definition is simply - % \lastnode when called from \setref -> \pdfmkdest. - \HyPsdSubst{(}{\realbackslash(}{#1}% - \HyPsdSubst{)}{\realbackslash)}{#1}% +% +% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and +% related messages. The final outcome is that it is up to the TeX user +% to double the backslashes and otherwise make the string valid, so +% that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to +% do this reliably, so we use it. + +% #1 is a control sequence in which to do the replacements, +% which we \xdef. +\def\txiescapepdf#1{% + \ifx\pdfescapestring\relax + % No primitive available; should we give a warning or log? + % Many times it won't matter. + \else + % The expandable \pdfescapestring primitive escapes parentheses, + % backslashes, and other special chars. + \xdef#1{\pdfescapestring{#1}}% + \fi } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images @@ -1384,29 +1176,31 @@ output) for that.)} \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % - % pdftex (and the PDF format) support .png, .jpg, .pdf (among - % others). Let's try in that order. + % pdftex (and the PDF format) support .pdf, .png, .jpg (among + % others). Let's try in that order, PDF first since if + % someone has a scalable image, presumably better to use that than a + % bitmap. \let\pdfimgext=\empty \begingroup - \openin 1 #1.png \ifeof 1 - \openin 1 #1.jpg \ifeof 1 - \openin 1 #1.jpeg \ifeof 1 - \openin 1 #1.JPG \ifeof 1 - \openin 1 #1.pdf \ifeof 1 - \openin 1 #1.PDF \ifeof 1 + \openin 1 #1.pdf \ifeof 1 + \openin 1 #1.PDF \ifeof 1 + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% - \else \gdef\pdfimgext{PDF}% + \else \gdef\pdfimgext{JPG}% \fi - \else \gdef\pdfimgext{pdf}% + \else \gdef\pdfimgext{jpeg}% \fi - \else \gdef\pdfimgext{JPG}% + \else \gdef\pdfimgext{jpg}% \fi - \else \gdef\pdfimgext{jpeg}% + \else \gdef\pdfimgext{png}% \fi - \else \gdef\pdfimgext{jpg}% + \else \gdef\pdfimgext{PDF}% \fi - \else \gdef\pdfimgext{png}% + \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup @@ -1434,10 +1228,9 @@ output) for that.)} % such as \, aren't expanded when present in a section title. \indexnofonts \turnoffactive - \activebackslashdouble \makevalueexpandable \def\pdfdestname{#1}% - \backslashparens\pdfdestname + \txiescapepdf\pdfdestname \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} % @@ -1469,29 +1262,24 @@ output) for that.)} % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. - \def\pdfoutlinedest{#3}% + \edef\pdfoutlinedest{#3}% \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}% \else - % Doubled backslashes in the name. - {\activebackslashdouble \xdef\pdfoutlinedest{#3}% - \backslashparens\pdfoutlinedest}% + \txiescapepdf\pdfoutlinedest \fi % - % Also double the backslashes in the display string. - {\activebackslashdouble \xdef\pdfoutlinetext{#1}% - \backslashparens\pdfoutlinetext}% + % Also escape PDF chars in the display string. + \edef\pdfoutlinetext{#1}% + \txiescapepdf\pdfoutlinetext % \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup - % Thanh's hack / proper braces in bookmarks - \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace - \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace - % % Read toc silently, to get counts of subentries for \pdfoutline. + \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% @@ -1545,15 +1333,26 @@ output) for that.)} % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % - % xx to do this right, we have to translate 8-bit characters to - % their "best" equivalent, based on the @documentencoding. Right - % now, I guess we'll just let the pdf reader have its way. + % TODO this right, we have to translate 8-bit characters to + % their "best" equivalent, based on the @documentencoding. Too + % much work for too little return. Just use the ASCII equivalents + % we use for the index sort strings. + % \indexnofonts \setupdatafile + % We can have normal brace characters in the PDF outlines, unlike + % Texinfo index files. So set that up. + \def\{{\lbracecharliteral}% + \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } + {\catcode`[=1 \catcode`]=2 + \catcode`{=\other \catcode`}=\other + \gdef\lbracecharliteral[{]% + \gdef\rbracecharliteral[}]% + ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax @@ -1695,7 +1494,7 @@ output) for that.)} % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) -\ifpdf \ifx\pdffontattr\undefined \else +\ifpdf \ifx\pdffontattr\thisisundefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap @@ -1962,7 +1761,7 @@ end % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. -\ifx\fontprefix\undefined +\ifx\fontprefix\thisisundefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. @@ -2105,8 +1904,8 @@ end \font\reducedsy=cmsy10 \def\reducedecsize{1000} -% reset the current fonts -\textfonts +\textleading = 13.2pt % line spacing for 11pt CM +\textfonts % reset the current fonts \rm } % end of 11pt text font size definitions @@ -2236,11 +2035,9 @@ end \font\reducedsy=cmsy9 \def\reducedecsize{0900} -% reduce space between paragraphs -\divide\parskip by 2 - -% reset the current fonts -\textfonts +\divide\parskip by 2 % reduce space between paragraphs +\textleading = 12pt % line spacing for 10pt CM +\textfonts % reset the current fonts \rm } % end of 10pt text font size definitions @@ -2249,12 +2046,13 @@ end % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % -\def\xword{10} \def\xiword{11} +\def\xword{10} +\def\xwordpt{10pt} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% - \wlog{doing @fonttextsize \textsizearg}% + %\wlog{doing @fonttextsize \textsizearg}% % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. @@ -2308,7 +2106,7 @@ end \let\tenttsl=\titlettsl \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% - \resetmathfonts \setleading{25pt}} + \resetmathfonts \setleading{27pt}} \def\titlefont#1{{\titlefonts\rmisbold #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl @@ -2436,12 +2234,14 @@ end % Markup style setup for left and right quotes. \defmarkupstylesetup\markupsetuplq{% - \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname + \expandafter\let\expandafter \temp + \csname markupsetuplq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuplqdefault \else \temp \fi } \defmarkupstylesetup\markupsetuprq{% - \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname + \expandafter\let\expandafter \temp + \csname markupsetuprq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuprqdefault \else \temp \fi } @@ -2460,22 +2260,26 @@ end \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright +% \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright +% +\let\markupsetuplqsamp \markupsetcodequoteleft +\let\markupsetuprqsamp \markupsetcodequoteright +% \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright +% \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright -\let\markupsetuplqsamp \markupsetnoligaturesquoteleft \let\markupsetuplqkbd \markupsetnoligaturesquoteleft -% Allow an option to not replace quotes with a regular directed right -% quote/apostrophe (char 0x27), but instead use the undirected quote -% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it -% the default, but it works for pasting with more pdf viewers (at least -% evince), the lilypond developers report. xpdf does work with the -% regular 0x27. +% Allow an option to not use regular directed right quote/apostrophe +% (char 0x27), but instead the undirected quote from cmtt (char 0x0d). +% The undirected quote is ugly, so don't make it the default, but it +% works for pasting with more pdf viewers (at least evince), the +% lilypond developers report. xpdf does work with the regular 0x27. % \def\codequoteright{% \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax @@ -2499,33 +2303,84 @@ end \else \char'22 \fi } +% Commands to set the quote options. +% +\parseargdef\codequoteundirected{% + \def\temp{#1}% + \ifx\temp\onword + \expandafter\let\csname SETtxicodequoteundirected\endcsname + = t% + \else\ifx\temp\offword + \expandafter\let\csname SETtxicodequoteundirected\endcsname + = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% + \fi\fi +} +% +\parseargdef\codequotebacktick{% + \def\temp{#1}% + \ifx\temp\onword + \expandafter\let\csname SETtxicodequotebacktick\endcsname + = t% + \else\ifx\temp\offword + \expandafter\let\csname SETtxicodequotebacktick\endcsname + = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% + \fi\fi +} + % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 -%% Add scribe-like font environments, plus @l for inline lisp (usually sans -%% serif) and @ii for TeX italic +% Font commands. -% \smartitalic{ARG} outputs arg in italics, followed by an italic correction -% unless the following character is such as not to need one. -\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else - \ptexslash\fi\fi\fi} -\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} -\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} +% #1 is the font command (\sl or \it), #2 is the text to slant. +% If we are in a monospaced environment, however, 1) always use \ttsl, +% and 2) do not add an italic correction. +\def\dosmartslant#1#2{% + \ifusingtt + {{\ttsl #2}\let\next=\relax}% + {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% + \next +} +\def\smartslanted{\dosmartslant\sl} +\def\smartitalic{\dosmartslant\it} -% like \smartslanted except unconditionally uses \ttsl. +% Output an italic correction unless \next (presumed to be the following +% character) is such as not to need one. +\def\smartitaliccorrection{% + \ifx\next,% + \else\ifx\next-% + \else\ifx\next.% + \else\ptexslash + \fi\fi\fi + \aftersmartic +} + +% like \smartslanted except unconditionally uses \ttsl, and no ic. % @var is set to this for defun arguments. -\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} +\def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? -\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} +\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} + +\def\aftersmartic{} +\def\var#1{% + \let\saveaftersmartic = \aftersmartic + \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% + \smartslanted{#1}% +} \let\i=\smartitalic \let\slanted=\smartslanted -\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}} \let\dfn=\smartslanted \let\emph=\smartitalic @@ -2621,7 +2476,7 @@ end \plainfrenchspacing #1% }% - \null + \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. @@ -2653,6 +2508,8 @@ end } } +\def\codex #1{\tclose{#1}\endgroup} + \def\realdash{-} \def\codedash{-\discretionary{}{}{}} \def\codeunder{% @@ -2666,7 +2523,6 @@ end \discretionary{}{}{}}% {\_}% } -\def\codex #1{\tclose{#1}\endgroup} % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is undesirable in @@ -2686,10 +2542,156 @@ end \allowcodebreaksfalse \else \errhelp = \EMsimple - \errmessage{Unknown @allowcodebreaks option `\txiarg'}% + \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% \fi\fi } +% @uref (abbreviation for `urlref') takes an optional (comma-separated) +% second argument specifying the text to display and an optional third +% arg as text to display instead of (rather than in addition to) the url +% itself. First (mandatory) arg is the url. +% (This \urefnobreak definition isn't used now, leaving it for a while +% for comparison.) +\def\urefnobreak#1{\dourefnobreak #1,,,\finish} +\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup + \unsepspaces + \pdfurl{#1}% + \setbox0 = \hbox{\ignorespaces #3}% + \ifdim\wd0 > 0pt + \unhbox0 % third arg given, show only that + \else + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0 > 0pt + \ifpdf + \unhbox0 % PDF: 2nd arg given, show only it + \else + \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url + \fi + \else + \code{#1}% only url given, so show it + \fi + \fi + \endlink +\endgroup} + +% This \urefbreak definition is the active one. +\def\urefbreak{\begingroup \urefcatcodes \dourefbreak} +\let\uref=\urefbreak +\def\dourefbreak#1{\urefbreakfinish #1,,,\finish} +\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example + \unsepspaces + \pdfurl{#1}% + \setbox0 = \hbox{\ignorespaces #3}% + \ifdim\wd0 > 0pt + \unhbox0 % third arg given, show only that + \else + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0 > 0pt + \ifpdf + \unhbox0 % PDF: 2nd arg given, show only it + \else + \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url + \fi + \else + \urefcode{#1}% only url given, so show it + \fi + \fi + \endlink +\endgroup} + +% Allow line breaks around only a few characters (only). +\def\urefcatcodes{% + \catcode\ampChar=\active \catcode\dotChar=\active + \catcode\hashChar=\active \catcode\questChar=\active + \catcode\slashChar=\active +} +{ + \urefcatcodes + % + \global\def\urefcode{\begingroup + \setupmarkupstyle{code}% + \urefcatcodes + \let&\urefcodeamp + \let.\urefcodedot + \let#\urefcodehash + \let?\urefcodequest + \let/\urefcodeslash + \codex + } + % + % By default, they are just regular characters. + \global\def&{\normalamp} + \global\def.{\normaldot} + \global\def#{\normalhash} + \global\def?{\normalquest} + \global\def/{\normalslash} +} + +% we put a little stretch before and after the breakable chars, to help +% line breaking of long url's. The unequal skips make look better in +% cmtt at least, especially for dots. +\def\urefprestretch{\urefprebreak \hskip0pt plus.13em } +\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em } +% +\def\urefcodeamp{\urefprestretch \&\urefpoststretch} +\def\urefcodedot{\urefprestretch .\urefpoststretch} +\def\urefcodehash{\urefprestretch \#\urefpoststretch} +\def\urefcodequest{\urefprestretch ?\urefpoststretch} +\def\urefcodeslash{\futurelet\next\urefcodeslashfinish} +{ + \catcode`\/=\active + \global\def\urefcodeslashfinish{% + \urefprestretch \slashChar + % Allow line break only after the final / in a sequence of + % slashes, to avoid line break between the slashes in http://. + \ifx\next/\else \urefpoststretch \fi + } +} + +% One more complication: by default we'll break after the special +% characters, but some people like to break before the special chars, so +% allow that. Also allow no breaking at all, for manual control. +% +\parseargdef\urefbreakstyle{% + \def\txiarg{#1}% + \ifx\txiarg\wordnone + \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} + \else\ifx\txiarg\wordbefore + \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak} + \else\ifx\txiarg\wordafter + \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak} + \else + \errhelp = \EMsimple + \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% + \fi\fi\fi +} +\def\wordafter{after} +\def\wordbefore{before} +\def\wordnone{none} + +\urefbreakstyle after + +% @url synonym for @uref, since that's how everyone uses it. +% +\let\url=\uref + +% rms does not like angle brackets --karl, 17may97. +% So now @email is just like @uref, unless we are pdf. +% +%\def\email#1{\angleleft{\tt #1}\angleright} +\ifpdf + \def\email#1{\doemail#1,,\finish} + \def\doemail#1,#2,#3\finish{\begingroup + \unsepspaces + \pdfurl{mailto:#1}% + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi + \endlink + \endgroup} +\else + \let\email=\uref +\fi + % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} @@ -2707,7 +2709,7 @@ end \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple - \errmessage{Unknown @kbdinputstyle option `\txiarg'}% + \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} @@ -2735,92 +2737,253 @@ end \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} -% @uref (abbreviation for `urlref') takes an optional (comma-separated) -% second argument specifying the text to display and an optional third -% arg as text to display instead of (rather than in addition to) the url -% itself. First (mandatory) arg is the url. Perhaps eventually put in -% a hypertex \special here. +% Typeset a dimension, e.g., `in' or `pt'. The only reason for the +% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % -\def\uref#1{\douref #1,,,\finish} -\def\douref#1,#2,#3,#4\finish{\begingroup - \unsepspaces - \pdfurl{#1}% - \setbox0 = \hbox{\ignorespaces #3}% - \ifdim\wd0 > 0pt - \unhbox0 % third arg given, show only that - \else - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0 > 0pt - \ifpdf - \unhbox0 % PDF: 2nd arg given, show only it - \else - \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url - \fi - \else - \code{#1}% only url given, so show it - \fi +\def\dmn#1{\thinspace #1} + +% @l was never documented to mean ``switch to the Lisp font'', +% and it is not used as such in any manual I can find. We need it for +% Polish suppressed-l. --karl, 22sep96. +%\def\l#1{{\li #1}\null} + +% @acronym for "FBI", "NATO", and the like. +% We print this one point size smaller, since it's intended for +% all-uppercase. +% +\def\acronym#1{\doacronym #1,,\finish} +\def\doacronym#1,#2,#3\finish{% + {\selectfonts\lsize #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi - \endlink -\endgroup} + \null % reset \spacefactor=1000 +} -% @url synonym for @uref, since that's how everyone uses it. +% @abbr for "Comput. J." and the like. +% No font change, but don't do end-of-sentence spacing. % -\let\url=\uref +\def\abbr#1{\doabbr #1,,\finish} +\def\doabbr#1,#2,#3\finish{% + {\plainfrenchspacing #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% + \fi + \null % reset \spacefactor=1000 +} -% rms does not like angle brackets --karl, 17may97. -% So now @email is just like @uref, unless we are pdf. +% @asis just yields its argument. Used with @table, for example. % -%\def\email#1{\angleleft{\tt #1}\angleright} -\ifpdf - \def\email#1{\doemail#1,,\finish} - \def\doemail#1,#2,#3\finish{\begingroup - \unsepspaces - \pdfurl{mailto:#1}% - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi - \endlink - \endgroup} -\else - \let\email=\uref -\fi +\def\asis#1{#1} + +% @math outputs its argument in math mode. +% +% One complication: _ usually means subscripts, but it could also mean +% an actual _ character, as in @math{@var{some_variable} + 1}. So make +% _ active, and distinguish by seeing if the current family is \slfam, +% which is what @var uses. +{ + \catcode`\_ = \active + \gdef\mathunderscore{% + \catcode`\_=\active + \def_{\ifnum\fam=\slfam \_\else\sb\fi}% + } +} +% Another complication: we want \\ (and @\) to output a math (or tt) \. +% FYI, plain.tex uses \\ as a temporary control sequence (for no +% particular reason), but this is not advertised and we don't care. +% +% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. +\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} +% +\def\math{% + \tex + \mathunderscore + \let\\ = \mathbackslash + \mathactive + % make the texinfo accent commands work in math mode + \let\"=\ddot + \let\'=\acute + \let\==\bar + \let\^=\hat + \let\`=\grave + \let\u=\breve + \let\v=\check + \let\~=\tilde + \let\dotaccent=\dot + $\finishmath +} +\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. + +% Some active characters (such as <) are spaced differently in math. +% We have to reset their definitions in case the @math was an argument +% to a command which sets the catcodes (such as @item or @section). +% +{ + \catcode`^ = \active + \catcode`< = \active + \catcode`> = \active + \catcode`+ = \active + \catcode`' = \active + \gdef\mathactive{% + \let^ = \ptexhat + \let< = \ptexless + \let> = \ptexgtr + \let+ = \ptexplus + \let' = \ptexquoteright + } +} + +% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. +% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, +% except specified as a normal braced arg, so no newlines to worry about. +% +\def\outfmtnametex{tex} +% +\def\inlinefmt#1{\doinlinefmt #1,\finish} +\def\doinlinefmt#1,#2,\finish{% + \def\inlinefmtname{#1}% + \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi +} +% For raw, must switch into @tex before parsing the argument, to avoid +% setting catcodes prematurely. Doing it this way means that, for +% example, @inlineraw{html, foo{bar} gets a parse error instead of being +% ignored. But this isn't important because if people want a literal +% *right* brace they would have to use a command anyway, so they may as +% well use a command to get a left brace too. We could re-use the +% delimiter character idea from \verb, but it seems like overkill. +% +\def\inlineraw{\tex \doinlineraw} +\def\doinlineraw#1{\doinlinerawtwo #1,\finish} +\def\doinlinerawtwo#1,#2,\finish{% + \def\inlinerawname{#1}% + \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi + \endgroup % close group opened by \tex. +} + + +\message{glyphs,} +% and logos. + +% @@ prints an @, as does @atchar{}. +\def\@{\char64 } +\let\atchar=\@ + +% @{ @} @lbracechar{} @rbracechar{} all generate brace characters. +% Unless we're in typewriter, use \ecfont because the CM text fonts do +% not have braces, and we don't want to switch into math. +\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} +\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} +\let\{=\mylbrace \let\lbracechar=\{ +\let\}=\myrbrace \let\rbracechar=\} +\begingroup + % Definitions to produce \{ and \} commands for indices, + % and @{ and @} for the aux/toc files. + \catcode`\{ = \other \catcode`\} = \other + \catcode`\[ = 1 \catcode`\] = 2 + \catcode`\! = 0 \catcode`\\ = \other + !gdef!lbracecmd[\{]% + !gdef!rbracecmd[\}]% + !gdef!lbraceatcmd[@{]% + !gdef!rbraceatcmd[@}]% +!endgroup + +% @comma{} to avoid , parsing problems. +\let\comma = , + +% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent +% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. +\let\, = \ptexc +\let\dotaccent = \ptexdot +\def\ringaccent#1{{\accent23 #1}} +\let\tieaccent = \ptext +\let\ubaraccent = \ptexb +\let\udotaccent = \d + +% Other special characters: @questiondown @exclamdown @ordf @ordm +% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. +\def\questiondown{?`} +\def\exclamdown{!`} +\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} +\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} + +% Dotless i and dotless j, used for accents. +\def\imacro{i} +\def\jmacro{j} +\def\dotless#1{% + \def\temp{#1}% + \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi + \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi + \else \errmessage{@dotless can be used only with i or j}% + \fi\fi +} -% Typeset a dimension, e.g., `in' or `pt'. The only reason for the -% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. +% The \TeX{} logo, as in plain, but resetting the spacing so that a +% period following counts as ending a sentence. (Idea found in latex.) % -\def\dmn#1{\thinspace #1} - -% @l was never documented to mean ``switch to the Lisp font'', -% and it is not used as such in any manual I can find. We need it for -% Polish suppressed-l. --karl, 22sep96. -%\def\l#1{{\li #1}\null} +\edef\TeX{\TeX \spacefactor=1000 } -% @acronym for "FBI", "NATO", and the like. -% We print this one point size smaller, since it's intended for -% all-uppercase. +% @LaTeX{} logo. Not quite the same results as the definition in +% latex.ltx, since we use a different font for the raised A; it's most +% convenient for us to use an explicitly smaller font, rather than using +% the \scriptstyle font (since we don't reset \scriptstyle and +% \scriptscriptstyle). % -\def\acronym#1{\doacronym #1,,\finish} -\def\doacronym#1,#2,#3\finish{% - {\selectfonts\lsize #1}% - \def\temp{#2}% - \ifx\temp\empty \else - \space ({\unsepspaces \ignorespaces \temp \unskip})% - \fi +\def\LaTeX{% + L\kern-.36em + {\setbox0=\hbox{T}% + \vbox to \ht0{\hbox{% + \ifx\textnominalsize\xwordpt + % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX. + % Revert to plain's \scriptsize, which is 7pt. + \count255=\the\fam $\fam\count255 \scriptstyle A$% + \else + % For 11pt, we can use our lllsize. + \selectfonts\lllsize A% + \fi + }% + \vss + }}% + \kern-.15em + \TeX } -% @abbr for "Comput. J." and the like. -% No font change, but don't do end-of-sentence spacing. +% Some math mode symbols. +\def\bullet{$\ptexbullet$} +\def\geq{\ifmmode \ge\else $\ge$\fi} +\def\leq{\ifmmode \le\else $\le$\fi} +\def\minus{\ifmmode -\else $-$\fi} + +% @dots{} outputs an ellipsis using the current font. +% We do .5em per period so that it has the same spacing in the cm +% typewriter fonts as three actual period characters; on the other hand, +% in other typewriter fonts three periods are wider than 1.5em. So do +% whichever is larger. % -\def\abbr#1{\doabbr #1,,\finish} -\def\doabbr#1,#2,#3\finish{% - {\plainfrenchspacing #1}% - \def\temp{#2}% - \ifx\temp\empty \else - \space ({\unsepspaces \ignorespaces \temp \unskip})% +\def\dots{% + \leavevmode + \setbox0=\hbox{...}% get width of three periods + \ifdim\wd0 > 1.5em + \dimen0 = \wd0 + \else + \dimen0 = 1.5em \fi + \hbox to \dimen0{% + \hskip 0pt plus.25fil + .\hskip 0pt plus1fil + .\hskip 0pt plus1fil + .\hskip 0pt plus.5fil + }% } - -\message{glyphs,} +% @enddots{} is an end-of-sentence ellipsis. +% +\def\enddots{% + \dots + \spacefactor=\endofsentencespacefactor +} % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % @@ -2842,7 +3005,7 @@ end {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) -\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} +\setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. @@ -2991,7 +3154,7 @@ end % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % -\ifx\Orb\undefined +\ifx\Orb\thisisundefined \def\Orb{\mathhexbox20D} \fi @@ -3019,8 +3182,9 @@ end \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue -\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% - \endgroup\page\hbox{}\page} +\parseargdef\shorttitlepage{% + \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% + \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. @@ -3080,7 +3244,7 @@ end \finishedtitlepagetrue } -%%% Macros to be used within @titlepage: +% Macros to be used within @titlepage: \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} @@ -3113,7 +3277,7 @@ end } -%%% Set up page headings and footings. +% Set up page headings and footings. \let\thispage=\folio @@ -3207,10 +3371,14 @@ end \def\headings #1 {\csname HEADINGS#1\endcsname} -\def\HEADINGSoff{% -\global\evenheadline={\hfil} \global\evenfootline={\hfil} -\global\oddheadline={\hfil} \global\oddfootline={\hfil}} -\HEADINGSoff +\def\headingsoff{% non-global headings elimination + \evenheadline={\hfil}\evenfootline={\hfil}% + \oddheadline={\hfil}\oddfootline={\hfil}% +} + +\def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting +\HEADINGSoff % it's the default + % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document @@ -3261,7 +3429,7 @@ end % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). -\ifx\today\undefined +\ifx\today\thisisundefined \def\today{% \number\day\space \ifcase\month @@ -3322,7 +3490,7 @@ end \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent - \advance\rightskip by0pt plus1fil + \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % @@ -3808,18 +3976,18 @@ end \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 \fi -%% Test to see if parskip is larger than space between lines of -%% table. If not, do nothing. -%% If so, set to same dimension as multitablelinespace. +% Test to see if parskip is larger than space between lines of +% table. If not, do nothing. +% If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller - %% than skip between lines in the table. +\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller + % than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller - %% than skip between lines in the table. +\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller + % than skip between lines in the table. \fi} @@ -4134,11 +4302,14 @@ end \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% % - % Need these in case \tex is in effect and \{ is a \delimiter again. - % But can't use \lbracecmd and \rbracecmd because texindex assumes - % braces and backslashes are used only as delimiters. - \let\{ = \mylbrace - \let\} = \myrbrace + % Need these unexpandable (because we define \tt as a dummy) + % definitions when @{ or @} appear in index entry text. Also, more + % complicated, when \tex is in effect and \{ is a \delimiter again. + % We can't use \lbracecmd and \rbracecmd because texindex assumes + % braces and backslashes are used only as delimiters. Perhaps we + % should define @lbrace and @rbrace commands a la @comma. + \def\{{{\tt\char123}}% + \def\}{{\tt\char125}}% % % I don't entirely understand this, but when an index entry is % generated from a macro call, the \endinput which \scanmacro inserts @@ -4191,7 +4362,7 @@ end \def\commondummies{% % % \definedummyword defines \#1 as \string\#1\space, thus effectively - % preventing its expansion. This is used only for control% words, + % preventing its expansion. This is used only for control words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. @@ -4210,6 +4381,7 @@ end \commondummiesnofonts % \definedummyletter\_% + \definedummyletter\-% % % Non-English letters. \definedummyword\AA @@ -4246,20 +4418,24 @@ end \definedummyword\TeX % % Assorted special characters. + \definedummyword\arrow \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots + \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro + \definedummyword\expansion + \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright - \definedummyword\expansion + \definedummyword\leq \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds @@ -4316,19 +4492,24 @@ end \definedummyword\b \definedummyword\i \definedummyword\r + \definedummyword\sansserif \definedummyword\sc + \definedummyword\slanted \definedummyword\t % % Commands that take arguments. \definedummyword\acronym + \definedummyword\anchor \definedummyword\cite \definedummyword\code \definedummyword\command \definedummyword\dfn + \definedummyword\dmn \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file + \definedummyword\indicateurl \definedummyword\kbd \definedummyword\key \definedummyword\math @@ -4356,7 +4537,7 @@ end \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\definedummyletter##1{\let##1\empty}% - % Hopefully, all control words can become @asis. + % All control words become @asis by default; overrides below. \let\definedummyword\definedummyaccent % \commondummiesnofonts @@ -4368,8 +4549,14 @@ end % \def\ { }% \def\@{@}% - % how to handle braces? \def\_{\normalunderscore}% + \def\-{}% @- shouldn't affect sorting + % + % Unfortunately, texindex is not prepared to handle braces in the + % content at all. So for index sorting, we map @{ and @} to strings + % starting with |, since that ASCII character is between ASCII { and }. + \def\{{|a}% + \def\}{|b}% % % Non-English letters. \def\AA{AA}% @@ -4397,6 +4584,7 @@ end % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) + \def\arrow{->}% \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% @@ -4406,10 +4594,12 @@ end \def\error{error}% \def\euro{euro}% \def\expansion{==>}% + \def\geq{>=}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% + \def\leq{<=}% \def\minus{-}% \def\point{.}% \def\pounds{pounds}% @@ -4424,6 +4614,9 @@ end \def\result{=>}% \def\textdegree{o}% % + \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax + \else \indexlquoteignore \fi + % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up @@ -4437,6 +4630,11 @@ end \macrolist } +% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us +% ignore left quotes in the sort term. +{\catcode`\`=\active + \gdef\indexlquoteignore{\let`=\empty}} + \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? @@ -4694,7 +4892,6 @@ end % But this freezes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. -% % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% @@ -4731,10 +4928,17 @@ end % columns. \vskip 0pt plus1pt % + % When reading the text of entry, convert explicit line breaks + % from @* into spaces. The user might give these in long section + % titles, for instance. + \def\*{\unskip\space\ignorespaces}% + \def\entrybreak{\hfil\break}% + % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } +\def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent @@ -4967,7 +5171,22 @@ end \message{sectioning,} % Chapters, sections, etc. -% \unnumberedno is an oxymoron, of course. But we count the unnumbered +% Let's start with @part. +\outer\parseargdef\part{\partzzz{#1}} +\def\partzzz#1{% + \chapoddpage + \null + \vskip.3\vsize % move it down on the page a bit + \begingroup + \noindent \titlefonts\rmisbold #1\par % the text + \let\lastnode=\empty % no node to associate with + \writetocentry{part}{#1}{}% but put it in the toc + \headingsoff % no headline or footline on the part page + \chapoddpage + \endgroup +} + +% \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 @@ -5046,8 +5265,8 @@ end \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. -% To achive this, remember the "biggest" unnum. sec. we are currently in: -\chardef\unmlevel = \maxseclevel +% To achieve this, remember the "biggest" unnum. sec. we are currently in: +\chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. @@ -5072,8 +5291,8 @@ end % The heading type: \def\headtype{#1}% \if \headtype U% - \ifnum \absseclevel < \unmlevel - \chardef\unmlevel = \absseclevel + \ifnum \absseclevel < \unnlevel + \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: @@ -5085,10 +5304,10 @@ end \fi\fi \fi % Check for numbered within unnumbered: - \ifnum \absseclevel > \unmlevel + \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else - \chardef\unmlevel = 3 + \chardef\unnlevel = 3 \fi \fi % Now print the heading: @@ -5174,7 +5393,8 @@ end \global\let\subsubsection = \appendixsubsubsec } -\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz +% normally unnmhead0 calls unnumberedzzz: +\outer\parseargdef\unnumbered{\unnmhead0{#1}} \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 @@ -5218,40 +5438,47 @@ end \let\top\unnumbered % Sections. +% \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } -\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz +% normally calls appendixsectionzzz: +\outer\parseargdef\appendixsection{\apphead1{#1}} \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection -\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz +% normally calls unnumberedseczzz: +\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. -\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz +% +% normally calls numberedsubseczzz: +\outer\parseargdef\numberedsubsec{\numhead2{#1}} \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } -\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz +% normally calls appendixsubseczzz: +\outer\parseargdef\appendixsubsec{\apphead2{#1}} \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } -\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz +% normally calls unnumberedsubseczzz: +\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% @@ -5259,21 +5486,25 @@ end } % Subsubsections. -\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz +% +% normally numberedsubsubseczzz: +\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } -\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz +% normally appendixsubsubseczzz: +\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } -\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz +% normally unnumberedsubsubseczzz: +\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% @@ -5323,14 +5554,13 @@ end % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. -%%% Args are the skip and penalty (usually negative) +% Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} -%%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) - \newskip\chapheadingskip +% Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} % Because \domark is called before \chapoddpage, the filler page will @@ -5340,9 +5570,8 @@ end \chappager \ifodd\pageno \else \begingroup - \evenheadline={\hfil}\evenfootline={\hfil}% - \oddheadline={\hfil}\oddfootline={\hfil}% - \hbox to 0pt{}% + \headingsoff + \null \chappager \endgroup \fi @@ -5534,6 +5763,8 @@ end % \def\sectionheading#1#2#3#4{% {% + \checkenv{}% should not be in an environment. + % % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % @@ -5651,7 +5882,6 @@ end % This is purely so the last item on the list is a known \penalty > % 10000. This is so \startdefun can avoid allowing breakpoints after % section headings. Otherwise, it would insert a valid breakpoint between: - % % @section sec-whatever % @deffn def-whatever \penalty 10001 @@ -5785,6 +6015,7 @@ end \def\summarycontents{% \startcontents{\putwordShortTOC}% % + \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry @@ -5840,6 +6071,19 @@ end % The last argument is the page number. % The arguments in between are the chapter number, section number, ... +% Parts, in the main contents. Replace the part number, which doesn't +% exist, with an empty box. Let's hope all the numbers have the same width. +% Also ignore the page number, which is conventionally not printed. +\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} +\def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}} +% +% Parts, in the short toc. +\def\shortpartentry#1#2#3#4{% + \penalty-300 + \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip + \shortchapentry{{\bf #1}}{\numeralbox}{}{}% +} + % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % @@ -5929,9 +6173,9 @@ end \message{environments,} % @foo ... @end foo. -% @tex ... @end tex escapes into raw Tex temporarily. +% @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. -% But \@ or @@ will get a plain tex @ character. +% But \@ or @@ will get a plain @ character. \envdef\tex{% \setupmarkupstyle{tex}% @@ -5948,6 +6192,10 @@ end \catcode`\'=\other \escapechar=`\\ % + % ' is active in math mode (mathcode"8000). So reset it, and all our + % other math active characters (just in case), to plain's definitions. + \mathactive + % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc @@ -6051,6 +6299,12 @@ end \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing = t% + % + % If this cartouche directly follows a sectioning command, we need the + % \parskip glue (backspaced over by default) or the cartouche can + % collide with the section heading. + \ifnum\lastpenalty>10000 \vskip\parskip \fi + % \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop @@ -6064,7 +6318,7 @@ end \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip - \comment % For explanation, see the end of \def\group. + \comment % For explanation, see the end of def\group. } \def\Ecartouche{% \ifhmode\par\fi @@ -6150,41 +6404,42 @@ end } % We often define two environments, @foo and @smallfoo. -% Let's do it by one command: -\def\makedispenv #1#2{ - \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} - \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} +% Let's do it in one command. #1 is the env name, #2 the definition. +\def\makedispenvdef#1#2{% + \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% + \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } -% Define two synonyms: -\def\maketwodispenvs #1#2#3{ - \makedispenv{#1}{#3} - \makedispenv{#2}{#3} +% Define two environment synonyms (#1 and #2) for an environment. +\def\maketwodispenvdef#1#2#3{% + \makedispenvdef{#1}{#3}% + \makedispenvdef{#2}{#3}% } - -% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. +% +% @lisp: indented, narrowed, typewriter font; +% @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % -\maketwodispenvs {lisp}{example}{% +\maketwodispenvdef{lisp}{example}{% \nonfillstart \tt\setupmarkupstyle{example}% \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return + \gobble % eat return } % @display/@smalldisplay: same as @lisp except keep current font. % -\makedispenv {display}{% +\makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % -\makedispenv{format}{% +\makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble @@ -6203,7 +6458,7 @@ end \envdef\flushright{% \let\nonarrowing = t% \nonfillstart - \advance\leftskip by 0pt plus 1fill + \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak @@ -6238,6 +6493,8 @@ end % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % +\makedispenvdef{quotation}{\quotationstart} +% \def\quotationstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt @@ -6253,28 +6510,18 @@ end \parsearg\quotationlabel } -\envdef\quotation{% - \setnormaldispenv - \quotationstart -} - -\envdef\smallquotation{% - \setsmalldispenv - \quotationstart -} -\let\Esmallquotation = \Equotation - % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par - \ifx\quotationauthor\undefined\else + \ifx\quotationauthor\thisisundefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } +\def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% @@ -6331,21 +6578,28 @@ end % Setup for the @verbatim environment % -% Real tab expansion +% Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % -\def\starttabbox{\setbox0=\hbox\bgroup} +% We typeset each line of the verbatim in an \hbox, so we can handle +% tabs. The \global is in case the verbatim line starts with an accent, +% or some other command that starts with a begin-group. Otherwise, the +% entire \verbbox would disappear at the corresponding end-group, before +% it is typeset. Meanwhile, we can't have nested verbatim commands +% (can we?), so the \global won't be overwriting itself. +\newbox\verbbox +\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup - \dimen0=\wd0 % the width so far, or since the previous tab - \divide\dimen0 by\tabw - \multiply\dimen0 by\tabw % compute previous multiple of \tabw - \advance\dimen0 by\tabw % advance to next multiple of \tabw - \wd0=\dimen0 \box0 \starttabbox + \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab + \divide\dimen\verbbox by\tabw + \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw + \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw + \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox }% } \endgroup @@ -6354,15 +6608,16 @@ end \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart - % Easiest (and conventionally used) font for verbatim - \tt - \def\par{\leavevmode\egroup\box0\endgraf}% + \tt % easiest (and conventionally used) font for verbatim + % The \leavevmode here is for blank lines. Otherwise, we would + % never \starttabox and the \egroup would end verbatim mode. + \def\par{\leavevmode\egroup\box\verbbox\endgraf}% \tabexpand \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and - % make each space count - % must do in this order: + % make each space count. + % Must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } @@ -6419,6 +6674,7 @@ end \makevalueexpandable \setupverbatim \indexnofonts % Allow `@@' and other weird things in file names. + \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \input #1 \afterenvbreak }% @@ -6468,7 +6724,7 @@ end % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % - % As a minor refinement, we avoid "club" headers by signalling + % As a further refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. @@ -6505,7 +6761,7 @@ end #1#2 \endheader % common ending: \interlinepenalty = 10000 - \advance\rightskip by 0pt plus 1fil + \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx @@ -6535,13 +6791,36 @@ end \def\domakedefun#1#2#3{% \envdef#1{% \startdefun + \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } -%%% Untyped functions: +\newif\ifdoingtypefn % doing typed function? +\newif\ifrettypeownline % typeset return type on its own line? + +% @deftypefnnewline on|off says whether the return type of typed functions +% are printed on their own line. This affects @deftypefn, @deftypefun, +% @deftypeop, and @deftypemethod. +% +\parseargdef\deftypefnnewline{% + \def\temp{#1}% + \ifx\temp\onword + \expandafter\let\csname SETtxideftypefnnl\endcsname + = \empty + \else\ifx\temp\offword + \expandafter\let\csname SETtxideftypefnnl\endcsname + = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @txideftypefnnl value `\temp', + must be on|off}% + \fi\fi +} + +% Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} @@ -6560,7 +6839,7 @@ end \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } -%%% Typed functions: +% Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} @@ -6575,10 +6854,11 @@ end % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% + \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -%%% Typed variables: +% Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} @@ -6596,7 +6876,7 @@ end \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -%%% Untyped variables: +% Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } @@ -6607,7 +6887,8 @@ end % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } -%%% Type: +% Types: + % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% @@ -6635,25 +6916,49 @@ end % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% + \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % - % How we'll format the type name. Putting it in brackets helps + % Determine if we are typesetting the return type of a typed function + % on a line by itself. + \rettypeownlinefalse + \ifdoingtypefn % doing a typed function specifically? + % then check user option for putting return type on its own line: + \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else + \rettypeownlinetrue + \fi + \fi + % + % How we'll format the category name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % - % Figure out line sizes for the paragraph shape. + % Figure out line sizes for the paragraph shape. We'll always have at + % least two. + \tempnum = 2 + % % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip + % + % If doing a return type on its own line, we'll have another line. + \ifrettypeownline + \advance\tempnum by 1 + \def\maybeshapeline{0in \hsize}% + \else + \def\maybeshapeline{}% + \fi + % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent - % (plain.tex says that \dimen1 should be used only as global.) - \parshape 2 0in \dimen0 \defargsindent \dimen2 % - % Put the type name to the right margin. + % The final paragraph shape: + \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 + % + % Put the category name at the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize @@ -6675,8 +6980,16 @@ end % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt - \def\temp{#2}% return value type - \ifx\temp\empty\else \tclose{\temp} \fi + \def\temp{#2}% text of the return type + \ifx\temp\empty\else + \tclose{\temp}% typeset the return type + \ifrettypeownline + % put return type on its own line; prohibit line break following: + \hfil\vadjust{\nobreak}\break + \else + \space % type on same line, so just followed by a space + \fi + \fi % no return type #3% output function name }% {\rm\enskip}% hskip 0.5 em of \tenrm @@ -6794,7 +7107,7 @@ end % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. -\ifx\eTeXversion\undefined +\ifx\eTeXversion\thisisundefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% @@ -6805,25 +7118,30 @@ end } \fi -\def\scanmacro#1{% - \begingroup - \newlinechar`\^^M - \let\xeatspaces\eatspaces - % Undo catcode changes of \startcontents and \doprintindex - % When called from @insertcopying or (short)caption, we need active - % backslash to get it printed correctly. Previously, we had - % \catcode`\\=\other instead. We'll see whether a problem appears - % with macro expansion. --kasal, 19aug04 - \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ - % ... and \example - \spaceisspace - % - % Append \endinput to make sure that TeX does not see the ending newline. - % I've verified that it is necessary both for e-TeX and for ordinary TeX - % --kasal, 29nov03 - \scantokens{#1\endinput}% - \endgroup -} +\def\scanmacro#1{\begingroup + \newlinechar`\^^M + \let\xeatspaces\eatspaces + % + % Undo catcode changes of \startcontents and \doprintindex + % When called from @insertcopying or (short)caption, we need active + % backslash to get it printed correctly. Previously, we had + % \catcode`\\=\other instead. We'll see whether a problem appears + % with macro expansion. --kasal, 19aug04 + \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ + % + % ... and for \example: + \spaceisspace + % + % The \empty here causes a following catcode 5 newline to be eaten as + % part of reading whitespace after a control sequence. It does not + % eat a catcode 13 newline. There's no good way to handle the two + % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX + % would then have different behavior). See the Macro Details node in + % the manual for the workaround we recommend for macros and + % line-oriented commands. + % + \scantokens{#1\empty}% +\endgroup} \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% @@ -6877,17 +7195,18 @@ end % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active -% (as in normal texinfo). It is necessary to change the definition of \. - +% (as in normal texinfo). It is necessary to change the definition of \ +% to recognize macro arguments; this is the job of \mbodybackslash. +% % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. - +% % It's necessary to have hard CRs when the macro is executed. This is -% done by making ^^M (\endlinechar) catcode 12 when reading the macro +% done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. - -\def\scanctxt{% +% +\def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other @@ -6900,13 +7219,13 @@ end \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } -\def\scanargctxt{% +\def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\\=\other \catcode`\^^M=\other } -\def\macrobodyctxt{% +\def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\{=\other \catcode`\}=\other @@ -6914,32 +7233,56 @@ end \usembodybackslash } -\def\macroargctxt{% +\def\macroargctxt{% used when scanning invocations \scanctxt - \catcode`\\=\other + \catcode`\\=0 } +% why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes" +% for the single characters \ { }. Thus, we end up with the "commands" +% that would be written @\ @{ @} in a Texinfo document. +% +% We already have @{ and @}. For @\, we define it here, and only for +% this purpose, to produce a typewriter backslash (so, the @\ that we +% define for @math can't be used with @macro calls): +% +\def\\{\normalbackslash}% +% +% We would like to do this for \, too, since that is what makeinfo does. +% But it is not possible, because Texinfo already has a command @, for a +% cedilla accent. Documents must use @comma{} instead. +% +% \anythingelse will almost certainly be an error of some kind. + % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. - +% {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} +\def\margbackslash#1{\char`\#1 } + \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% - \getargs{#1}% now \macname is the macname and \argl the arglist + \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments - \paramno=0% + \paramno=0\relax \else \expandafter\parsemargdef \argl;% + \if\paramno>256\relax + \ifx\eTeXversion\thisisundefined + \errhelp = \EMsimple + \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} + \fi + \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% @@ -6986,46 +7329,269 @@ end % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} -\def\getmacname #1 #2\relax{\macname={#1}} +\def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} +% For macro processing make @ a letter so that we can make Texinfo private macro names. +\edef\texiatcatcode{\the\catcode`\@} +\catcode `@=11\relax + % Parse the optional {params} list. Set up \paramno and \paramlist -% so \defmacro knows what to do. Define \macarg.blah for each blah -% in the params list, to be ##N where N is the position in that list. +% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH +% in the params list to some hook where the argument si to be expanded. If +% there are less than 10 arguments that hook is to be replaced by ##N where N +% is the position in that list, that is to say the macro arguments are to be +% defined `a la TeX in the macro body. +% % That gets used by \mbodybackslash (above). - +% % We need to get `macro parameter char #' into several definitions. -% The technique used is stolen from LaTeX: let \hash be something +% The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. - -\def\parsemargdef#1;{\paramno=0\def\paramlist{}% - \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} +% +% If there are 10 or more arguments, a different technique is used, where the +% hook remains in the body, and when macro is to be expanded the body is +% processed again to replace the arguments. +% +% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the +% argument N value and then \edef the body (nothing else will expand because of +% the catcode regime underwhich the body was input). +% +% If you compile with TeX (not eTeX), and you have macros with 10 or more +% arguments, you need that no macro has more than 256 arguments, otherwise an +% error is produced. +\def\parsemargdef#1;{% + \paramno=0\def\paramlist{}% + \let\hash\relax + \let\xeatspaces\relax + \parsemargdefxxx#1,;,% + % In case that there are 10 or more arguments we parse again the arguments + % list to set new definitions for the \macarg.BLAH macros corresponding to + % each BLAH argument. It was anyhow needed to parse already once this list + % in order to count the arguments, and as macros with at most 9 arguments + % are by far more frequent than macro with 10 or more arguments, defining + % twice the \macarg.BLAH macros does not cost too much processing power. + \ifnum\paramno<10\relax\else + \paramno0\relax + \parsemmanyargdef@@#1,;,% 10 or more arguments + \fi +} \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx - \advance\paramno by 1% + \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} +\def\parsemmanyargdef@@#1,{% + \if#1;\let\next=\relax + \else + \let\next=\parsemmanyargdef@@ + \edef\tempb{\eatspaces{#1}}% + \expandafter\def\expandafter\tempa + \expandafter{\csname macarg.\tempb\endcsname}% + % Note that we need some extra \noexpand\noexpand, this is because we + % don't want \the to be expanded in the \parsermacbody as it uses an + % \xdef . + \expandafter\edef\tempa + {\noexpand\noexpand\noexpand\the\toks\the\paramno}% + \advance\paramno by 1\relax + \fi\next} + % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) +% +\catcode `\@\texiatcatcode \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% +\catcode `\@=11\relax + +\let\endargs@\relax +\let\nil@\relax +\def\nilm@{\nil@}% +\long\def\nillm@{\nil@}% + +% This macro is expanded during the Texinfo macro expansion, not during its +% definition. It gets all the arguments values and assigns them to macros +% macarg.ARGNAME +% +% #1 is the macro name +% #2 is the list of argument names +% #3 is the list of argument values +\def\getargvals@#1#2#3{% + \def\macargdeflist@{}% + \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. + \def\paramlist{#2,\nil@}% + \def\macroname{#1}% + \begingroup + \macroargctxt + \def\argvaluelist{#3,\nil@}% + \def\@tempa{#3}% + \ifx\@tempa\empty + \setemptyargvalues@ + \else + \getargvals@@ + \fi +} + +% +\def\getargvals@@{% + \ifx\paramlist\nilm@ + % Some sanity check needed here that \argvaluelist is also empty. + \ifx\argvaluelist\nillm@ + \else + \errhelp = \EMsimple + \errmessage{Too many arguments in macro `\macroname'!}% + \fi + \let\next\macargexpandinbody@ + \else + \ifx\argvaluelist\nillm@ + % No more arguments values passed to macro. Set remaining named-arg + % macros to empty. + \let\next\setemptyargvalues@ + \else + % pop current arg name into \@tempb + \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% + \expandafter\@tempa\expandafter{\paramlist}% + % pop current argument value into \@tempc + \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% + \expandafter\@tempa\expandafter{\argvaluelist}% + % Here \@tempb is the current arg name and \@tempc is the current arg value. + % First place the new argument macro definition into \@tempd + \expandafter\macname\expandafter{\@tempc}% + \expandafter\let\csname macarg.\@tempb\endcsname\relax + \expandafter\def\expandafter\@tempe\expandafter{% + \csname macarg.\@tempb\endcsname}% + \edef\@tempd{\long\def\@tempe{\the\macname}}% + \push@\@tempd\macargdeflist@ + \let\next\getargvals@@ + \fi + \fi + \next +} + +\def\push@#1#2{% + \expandafter\expandafter\expandafter\def + \expandafter\expandafter\expandafter#2% + \expandafter\expandafter\expandafter{% + \expandafter#1#2}% +} + +% Replace arguments by their values in the macro body, and place the result +% in macro \@tempa +\def\macvalstoargs@{% + % To do this we use the property that token registers that are \the'ed + % within an \edef expand only once. So we are going to place all argument + % values into respective token registers. + % + % First we save the token context, and initialize argument numbering. + \begingroup + \paramno0\relax + % Then, for each argument number #N, we place the corresponding argument + % value into a new token list register \toks#N + \expandafter\putargsintokens@\saveparamlist@,;,% + % Then, we expand the body so that argument are replaced by their + % values. The trick for values not to be expanded themselves is that they + % are within tokens and that tokens expand only once in an \edef . + \edef\@tempc{\csname mac.\macroname .body\endcsname}% + % Now we restore the token stack pointer to free the token list registers + % which we have used, but we make sure that expanded body is saved after + % group. + \expandafter + \endgroup + \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% + } + +\def\macargexpandinbody@{% + %% Define the named-macro outside of this group and then close this group. + \expandafter + \endgroup + \macargdeflist@ + % First the replace in body the macro arguments by their values, the result + % is in \@tempa . + \macvalstoargs@ + % Then we point at the \norecurse or \gobble (for recursive) macro value + % with \@tempb . + \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname + % Depending on whether it is recursive or not, we need some tailing + % \egroup . + \ifx\@tempb\gobble + \let\@tempc\relax + \else + \let\@tempc\egroup + \fi + % And now we do the real job: + \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% + \@tempd +} + +\def\putargsintokens@#1,{% + \if#1;\let\next\relax + \else + \let\next\putargsintokens@ + % First we allocate the new token list register, and give it a temporary + % alias \@tempb . + \toksdef\@tempb\the\paramno + % Then we place the argument value into that token list register. + \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname + \expandafter\@tempb\expandafter{\@tempa}% + \advance\paramno by 1\relax + \fi + \next +} + +% Save the token stack pointer into macro #1 +\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}} +% Restore the token stack pointer from number in macro #1 +\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax} +% newtoks that can be used non \outer . +\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi} + +% Tailing missing arguments are set to empty +\def\setemptyargvalues@{% + \ifx\paramlist\nilm@ + \let\next\macargexpandinbody@ + \else + \expandafter\setemptyargvaluesparser@\paramlist\endargs@ + \let\next\setemptyargvalues@ + \fi + \next +} + +\def\setemptyargvaluesparser@#1,#2\endargs@{% + \expandafter\def\expandafter\@tempa\expandafter{% + \expandafter\def\csname macarg.#1\endcsname{}}% + \push@\@tempa\macargdeflist@ + \def\paramlist{#2}% +} + +% #1 is the element target macro +% #2 is the list macro +% #3,#4\endargs@ is the list value +\def\pop@#1#2#3,#4\endargs@{% + \def#1{#3}% + \def#2{#4}% +} +\long\def\longpop@#1#2#3,#4\endargs@{% + \long\def#1{#3}% + \long\def#2{#4}% +} -% This defines the macro itself. There are six cases: recursive and -% nonrecursive macros of zero, one, and many arguments. +% This defines a Texinfo @macro. There are eight cases: recursive and +% nonrecursive macros of zero, one, up to nine, and many arguments. % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. +% \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive @@ -7040,17 +7606,25 @@ end \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% - \else % many - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{\egroup\noexpand\scanmacro{\temp}}% + \else + \ifnum\paramno<10\relax % at most 9 + \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt + \noexpand\csname\the\macname xx\endcsname}% + \expandafter\xdef\csname\the\macname xx\endcsname##1{% + \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% + \expandafter\expandafter + \expandafter\xdef + \expandafter\expandafter + \csname\the\macname xxx\endcsname + \paramlist{\egroup\noexpand\scanmacro{\temp}}% + \else % 10 or more + \expandafter\xdef\csname\the\macname\endcsname{% + \noexpand\getargvals@{\the\macname}{\argl}% + }% + \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp + \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble + \fi \fi \else \ifcase\paramno @@ -7067,29 +7641,40 @@ end \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% - \else % many - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \expandafter\noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{% - \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% + \else % at most 9 + \ifnum\paramno<10\relax + \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt + \expandafter\noexpand\csname\the\macname xx\endcsname}% + \expandafter\xdef\csname\the\macname xx\endcsname##1{% + \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% + \expandafter\expandafter + \expandafter\xdef + \expandafter\expandafter + \csname\the\macname xxx\endcsname + \paramlist{% + \egroup + \noexpand\norecurse{\the\macname}% + \noexpand\scanmacro{\temp}\egroup}% + \else % 10 or more: + \expandafter\xdef\csname\the\macname\endcsname{% + \noexpand\getargvals@{\the\macname}{\argl}% + }% + \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp + \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse + \fi \fi \fi} +\catcode `\@\texiatcatcode\relax + \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence -% as an argument (by \parsebrace or \parsearg) +% as an argument (by \parsebrace or \parsearg). +% \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else @@ -7099,7 +7684,8 @@ end % @alias. % We need some trickery to remove the optional spaces around the equal -% sign. Just make them active and then expand them all to nothing. +% sign. Make them active and then expand them all to nothing. +% \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% @@ -7120,7 +7706,8 @@ end % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} -\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, +\def\inforefzzz #1,#2,#3,#4**{% + \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in @@ -7181,11 +7768,32 @@ end \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. - \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout + \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout }% \fi } +% @xrefautosectiontitle on|off says whether @section(ing) names are used +% automatically in xrefs, if the third arg is not explicitly specified. +% This was provided as a "secret" @set xref-automatic-section-title +% variable, now it's official. +% +\parseargdef\xrefautomaticsectiontitle{% + \def\temp{#1}% + \ifx\temp\onword + \expandafter\let\csname SETxref-automatic-section-title\endcsname + = \empty + \else\ifx\temp\offword + \expandafter\let\csname SETxref-automatic-section-title\endcsname + = \relax + \else + \errhelp = \EMsimple + \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', + must be on|off}% + \fi\fi +} + + % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed @@ -7202,7 +7810,7 @@ end \setbox0=\hbox{\printedrefname\unskip}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. - \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax + \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax % Use the node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else @@ -7231,9 +7839,8 @@ end % etc. don't get their TeX definitions. \getfilename{#4}% % - % See comments at \activebackslashdouble. - {\activebackslashdouble \xdef\pdfxrefdest{#1}% - \backslashparens\pdfxrefdest}% + \edef\pdfxrefdest{#1}% + \txiescapepdf\pdfxrefdest % \leavevmode \startlink attr{/Border [0 0 0]}% @@ -7357,7 +7964,8 @@ end \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs - \message{\linenumber Undefined cross reference `#1'.}% + {\toks0 = {#1}% avoid expansion of possibly-complex value + \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue @@ -7521,7 +8129,7 @@ end % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } -% @footnotestyle is meaningful for info output only. +% @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 @@ -7584,6 +8192,8 @@ end % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut + % + % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 @@ -7671,7 +8281,7 @@ end it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% - \ifx\epsfbox\undefined + \ifx\epsfbox\thisiundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% @@ -7687,7 +8297,7 @@ end % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. -% #6 is just the usual extra ignored arg for parsing this stuff. +% #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example @@ -8136,7 +8746,7 @@ directory should work if nowhere else does.} % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% - \gdef^^a0{~} + \gdef^^a0{\tie} \gdef^^a1{\exclamdown} \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} @@ -8166,7 +8776,7 @@ directory should work if nowhere else does.} \gdef^^b9{$^1$} \gdef^^ba{\ordm} % - \gdef^^bb{\guilletright} + \gdef^^bb{\guillemetright} \gdef^^bc{$1\over4$} \gdef^^bd{$1\over2$} \gdef^^be{$3\over4$} @@ -8258,7 +8868,7 @@ directory should work if nowhere else does.} % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% - \gdef^^a0{~} + \gdef^^a0{\tie} \gdef^^a1{\ogonek{A}} \gdef^^a2{\u{}} \gdef^^a3{\L} @@ -8339,8 +8949,8 @@ directory should work if nowhere else does.} \gdef^^ea{\ogonek{e}} \gdef^^eb{\"e} \gdef^^ec{\v e} - \gdef^^ed{\'\i} - \gdef^^ee{\^\i} + \gdef^^ed{\'{\dotless{i}}} + \gdef^^ee{\^{\dotless{i}}} \gdef^^ef{\v d} % \gdef^^f0{\dh} @@ -8431,7 +9041,7 @@ directory should work if nowhere else does.} \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax - \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% + %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% \begingroup \parseXMLCharref \def\UTFviiiTwoOctets##1##2{% @@ -8899,8 +9509,8 @@ directory should work if nowhere else does.} % Prevent underfull vbox error messages. \vbadness = 10000 -% Don't be so finicky about underfull hboxes, either. -\hbadness = 2000 +% Don't be very finicky about underfull hboxes, either. +\hbadness = 6666 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 @@ -9107,28 +9717,21 @@ directory should work if nowhere else does.} \message{and turning on texinfo input format.} +\def^^L{\par} % remove \outer, so ^L can appear in an @comment + % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. -\catcode`\"=\other -\catcode`\~=\other -\catcode`\^=\other -\catcode`\_=\other -\catcode`\|=\other -\catcode`\<=\other -\catcode`\>=\other -\catcode`\+=\other -\catcode`\$=\other -\def\normaldoublequote{"} -\def\normaltilde{~} -\def\normalcaret{^} -\def\normalunderscore{_} -\def\normalverticalbar{|} -\def\normalless{<} -\def\normalgreater{>} -\def\normalplus{+} -\def\normaldollar{$}%$ font-lock fix +\catcode`\"=\other \def\normaldoublequote{"} +\catcode`\$=\other \def\normaldollar{$}%$ font-lock fix +\catcode`\+=\other \def\normalplus{+} +\catcode`\<=\other \def\normalless{<} +\catcode`\>=\other \def\normalgreater{>} +\catcode`\^=\other \def\normalcaret{^} +\catcode`\_=\other \def\normalunderscore{_} +\catcode`\|=\other \def\normalverticalbar{|} +\catcode`\~=\other \def\normaltilde{~} % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, @@ -9206,14 +9809,24 @@ directory should work if nowhere else does.} % In texinfo, backslash is an active character; it prints the backslash % in fixed width font. -\catcode`\\=\active -@def@normalbackslash{{@tt@backslashcurfont}} +\catcode`\\=\active % @ for escape char from now on. + +% The story here is that in math mode, the \char of \backslashcurfont +% ends up printing the roman \ from the math symbol font (because \char +% in math mode uses the \mathcode, and plain.tex sets +% \mathcode`\\="026E). It seems better for @backslashchar{} to always +% print a typewriter backslash, hence we use an explicit \mathchar, +% which is the decimal equivalent of "715c (class 7, e.g., use \fam; +% ignored family value; char position "5C). We can't use " for the +% usual hex value because it has already been made active. +@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} +@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. + % On startup, @fixbackslash assigns: % @let \ = @normalbackslash - % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with -% catcode other. +% catcode other. We switch back and forth between these. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} @@ -9221,16 +9834,16 @@ directory should work if nowhere else does.} % the literal character `\'. % @def@normalturnoffactive{% - @let\=@normalbackslash @let"=@normaldoublequote - @let~=@normaltilde + @let$=@normaldollar %$ font-lock fix + @let+=@normalplus + @let<=@normalless + @let>=@normalgreater + @let\=@normalbackslash @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar - @let<=@normalless - @let>=@normalgreater - @let+=@normalplus - @let$=@normaldollar %$ font-lock fix + @let~=@normaltilde @markupsetuplqdefault @markupsetuprqdefault @unsepspaces @@ -9262,10 +9875,19 @@ directory should work if nowhere else does.} % Say @foo, not \foo, in error messages. @escapechar = `@@ +% These (along with & and #) are made active for url-breaking, so need +% active definitions as the normal characters. +@def@normaldot{.} +@def@normalquest{?} +@def@normalslash{/} + % These look ok in all fonts, so just make them not special. -@catcode`@& = @other -@catcode`@# = @other -@catcode`@% = @other +% @hashchar{} gets its own user-level command, because of #line. +@catcode`@& = @other @def@normalamp{&} +@catcode`@# = @other @def@normalhash{#} +@catcode`@% = @other @def@normalpercent{%} + +@let @hashchar = @normalhash @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we diff --git a/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java index 772df6a3bba..bed08d481d9 100644 --- a/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java +++ b/libjava/classpath/examples/gnu/classpath/examples/swing/Demo.java @@ -1,5 +1,5 @@ /* SwingDemo.java -- An example of using the javax.swing UI. - Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005, 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath examples. @@ -225,7 +225,7 @@ public class Demo Method m = null; try { - m = MetalLookAndFeel.class.getMethod("getCurrentTheme", null); + m = MetalLookAndFeel.class.getMethod("getCurrentTheme"); } catch (NoSuchMethodException nsme) { diff --git a/libjava/classpath/gnu/java/security/Properties.java b/libjava/classpath/gnu/java/security/Properties.java index 2213bde0607..1a4bf2276dc 100644 --- a/libjava/classpath/gnu/java/security/Properties.java +++ b/libjava/classpath/gnu/java/security/Properties.java @@ -1,5 +1,5 @@ /* Properties.java -- run-time configuration properties. - Copyright (C) 2003, 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -54,7 +54,8 @@ import java.util.logging.Logger; */ public final class Properties { - private static final Logger log = Logger.getLogger(Properties.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(Properties.class.getName()) : null; public static final String VERSION = "gnu.crypto.version"; diff --git a/libjava/classpath/gnu/java/security/der/DERWriter.java b/libjava/classpath/gnu/java/security/der/DERWriter.java index 0c26336053c..cea3fa31dfc 100644 --- a/libjava/classpath/gnu/java/security/der/DERWriter.java +++ b/libjava/classpath/gnu/java/security/der/DERWriter.java @@ -1,5 +1,5 @@ /* DERWriter.java -- write Java types in DER format. - Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -281,9 +281,9 @@ public class DERWriter implements DER private static byte[] toUtf8(String string) { - ByteArrayOutputStream buf = - new ByteArrayOutputStream((int)(string.length() * 1.5)); - for (int i = 0; i < string.length(); i++) + int len = string.length(); + ByteArrayOutputStream buf = new ByteArrayOutputStream(len + (len >> 1)); + for (int i = 0; i < len; i++) { char c = string.charAt(i); if (c < 0x0080) diff --git a/libjava/classpath/gnu/java/security/hash/Whirlpool.java b/libjava/classpath/gnu/java/security/hash/Whirlpool.java index 574104074bb..29eed59ba60 100644 --- a/libjava/classpath/gnu/java/security/hash/Whirlpool.java +++ b/libjava/classpath/gnu/java/security/hash/Whirlpool.java @@ -1,5 +1,5 @@ /* Whirlpool.java -- - Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -67,7 +67,9 @@ import java.util.logging.Logger; public final class Whirlpool extends BaseHash { - private static final Logger log = Logger.getLogger(Whirlpool.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(Whirlpool.class.getName()) : null; + private static final int BLOCK_SIZE = 64; // inner block size in bytes /** The digest of the 0-bit long message. */ diff --git a/libjava/classpath/gnu/java/security/jce/sig/EncodedKeyFactory.java b/libjava/classpath/gnu/java/security/jce/sig/EncodedKeyFactory.java index 19ec088c555..ec742013863 100644 --- a/libjava/classpath/gnu/java/security/jce/sig/EncodedKeyFactory.java +++ b/libjava/classpath/gnu/java/security/jce/sig/EncodedKeyFactory.java @@ -1,5 +1,5 @@ /* EncodedKeyFactory.java -- JCE Encoded key factory Adapter - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -78,7 +78,8 @@ import javax.crypto.spec.DHPublicKeySpec; public class EncodedKeyFactory extends KeyFactorySpi { - private static final Logger log = Logger.getLogger(EncodedKeyFactory.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(EncodedKeyFactory.class.getName()) : null; private static Object invokeConstructor(String className, Object[] params) throws InvalidKeySpecException diff --git a/libjava/classpath/gnu/java/security/jce/sig/SignatureAdapter.java b/libjava/classpath/gnu/java/security/jce/sig/SignatureAdapter.java index 0ed1e2f41fd..efe3681ca1a 100644 --- a/libjava/classpath/gnu/java/security/jce/sig/SignatureAdapter.java +++ b/libjava/classpath/gnu/java/security/jce/sig/SignatureAdapter.java @@ -1,5 +1,5 @@ /* SignatureAdapter.java -- - Copyright 2001, 2002, 2006 Free Software Foundation, Inc. + Copyright 2001, 2002, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -75,7 +75,8 @@ class SignatureAdapter extends SignatureSpi implements Cloneable { - private static final Logger log = Logger.getLogger(SignatureAdapter.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(SignatureAdapter.class.getName()) : null; /** Our underlying signature instance. */ private ISignature adaptee; diff --git a/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairGenerator.java b/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairGenerator.java index 6bda4e88e34..70df734a919 100644 --- a/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairGenerator.java +++ b/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairGenerator.java @@ -1,5 +1,5 @@ /* DSSKeyPairGenerator.java -- - Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -66,7 +66,8 @@ import java.util.logging.Logger; public class DSSKeyPairGenerator implements IKeyPairGenerator { - private static final Logger log = Logger.getLogger(DSSKeyPairGenerator.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(DSSKeyPairGenerator.class.getName()) : null; /** The BigInteger constant 2. */ private static final BigInteger TWO = BigInteger.valueOf(2L); diff --git a/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java b/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java index a59ca3cee7a..1806ecf587f 100644 --- a/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java +++ b/libjava/classpath/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.java @@ -1,5 +1,5 @@ /* DSSKeyPairPKCS8Codec.java -- PKCS#8 Encoding/Decoding handler - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -67,7 +67,9 @@ import java.util.logging.Logger; public class DSSKeyPairPKCS8Codec implements IKeyPairCodec { - private static final Logger log = Logger.getLogger(DSSKeyPairPKCS8Codec.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(DSSKeyPairPKCS8Codec.class.getName()) : null; + private static final OID DSA_ALG_OID = new OID(Registry.DSA_OID_STRING); // implicit 0-arguments constructor diff --git a/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairGenerator.java b/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairGenerator.java index bec60d350ca..99c3139449f 100644 --- a/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairGenerator.java +++ b/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairGenerator.java @@ -1,5 +1,5 @@ /* RSAKeyPairGenerator.java -- - Copyright 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -70,7 +70,8 @@ import java.util.logging.Logger; public class RSAKeyPairGenerator implements IKeyPairGenerator { - private static final Logger log = Logger.getLogger(RSAKeyPairGenerator.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(RSAKeyPairGenerator.class.getName()) : null; /** The BigInteger constant 1. */ private static final BigInteger ONE = BigInteger.ONE; diff --git a/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java b/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java index 2785f02c8ae..b07ed667cd0 100644 --- a/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java +++ b/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.java @@ -1,5 +1,5 @@ /* RSAKeyPairPKCS8Codec.java -- PKCS#8 Encoding/Decoding handler - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -64,7 +64,9 @@ import java.util.logging.Logger; public class RSAKeyPairPKCS8Codec implements IKeyPairCodec { - private static final Logger log = Logger.getLogger(RSAKeyPairPKCS8Codec.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(RSAKeyPairPKCS8Codec.class.getName()) : null; + private static final OID RSA_ALG_OID = new OID(Registry.RSA_OID_STRING); // implicit 0-arguments constructor diff --git a/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairX509Codec.java b/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairX509Codec.java index 9ad6ae02978..36fd75c9806 100644 --- a/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairX509Codec.java +++ b/libjava/classpath/gnu/java/security/key/rsa/RSAKeyPairX509Codec.java @@ -1,5 +1,5 @@ /* RSAKeyPairX509Codec.java -- X.509 Encoding/Decoding handler - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -65,7 +65,9 @@ import java.util.logging.Logger; public class RSAKeyPairX509Codec implements IKeyPairCodec { - private static final Logger log = Logger.getLogger(RSAKeyPairX509Codec.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(RSAKeyPairX509Codec.class.getName()) : null; + private static final OID RSA_ALG_OID = new OID(Registry.RSA_OID_STRING); // implicit 0-arguments constructor diff --git a/libjava/classpath/gnu/java/security/pkcs/PKCS7SignedData.java b/libjava/classpath/gnu/java/security/pkcs/PKCS7SignedData.java index adb00a3bea0..e479d2e8caf 100644 --- a/libjava/classpath/gnu/java/security/pkcs/PKCS7SignedData.java +++ b/libjava/classpath/gnu/java/security/pkcs/PKCS7SignedData.java @@ -1,5 +1,5 @@ /* PKCS7SignedData.java -- reader/writer for PKCS#7 signedData objects - Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -78,7 +78,8 @@ import java.util.logging.Logger; */ public class PKCS7SignedData { - private static final Logger log = Logger.getLogger(PKCS7SignedData.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(PKCS7SignedData.class.getName()) : null; public static final OID PKCS7_SIGNED_DATA = new OID("1.2.840.113549.1.7.2"); diff --git a/libjava/classpath/gnu/java/security/pkcs/SignerInfo.java b/libjava/classpath/gnu/java/security/pkcs/SignerInfo.java index 645ed67bb14..07ce4d71b14 100644 --- a/libjava/classpath/gnu/java/security/pkcs/SignerInfo.java +++ b/libjava/classpath/gnu/java/security/pkcs/SignerInfo.java @@ -1,5 +1,5 @@ /* SignerInfo.java -- a SignerInfo object, from PKCS #7 - Copyright (C) 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -59,7 +59,8 @@ import javax.security.auth.x500.X500Principal; public class SignerInfo { - private static final Logger log = Logger.getLogger(SignerInfo.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(SignerInfo.class.getName()) : null; private final BigInteger version; private final BigInteger serialNumber; @@ -111,7 +112,8 @@ public class SignerInfo throw new BEREncodingException("malformed Version"); version = (BigInteger) val.getValue(); - log.fine(" Version: " + version); + if (Configuration.DEBUG) + log.fine(" Version: " + version); val = ber.read(); if (!val.isConstructed()) diff --git a/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java b/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java index d4ce4aeb4fa..e0d31877746 100644 --- a/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java +++ b/libjava/classpath/gnu/java/security/provider/PKIXCertPathValidatorImpl.java @@ -1,5 +1,5 @@ /* PKIXCertPathValidatorImpl.java -- PKIX certificate path validator. - Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2005, 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -97,7 +97,8 @@ import java.util.logging.Logger; public class PKIXCertPathValidatorImpl extends CertPathValidatorSpi { - private static final Logger log = Logger.getLogger(PKIXCertPathValidatorImpl.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(PKIXCertPathValidatorImpl.class.getName()) : null; public static final String ANY_POLICY = "2.5.29.32.0"; diff --git a/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PSS.java b/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PSS.java index 917d9632334..7a8e591a376 100644 --- a/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PSS.java +++ b/libjava/classpath/gnu/java/security/sig/rsa/EMSA_PSS.java @@ -1,5 +1,5 @@ /* EMSA_PSS.java -- - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -73,7 +73,8 @@ import java.util.logging.Logger; public class EMSA_PSS implements Cloneable { - private static final Logger log = Logger.getLogger(EMSA_PSS.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(EMSA_PSS.class.getName()) : null; /** The underlying hash function to use with this instance. */ private IMessageDigest hash; diff --git a/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignature.java b/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignature.java index d8f8327f1cf..7b042f77f27 100644 --- a/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignature.java +++ b/libjava/classpath/gnu/java/security/sig/rsa/RSAPSSSignature.java @@ -1,5 +1,5 @@ /* RSAPSSSignature.java -- - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -75,7 +75,8 @@ import java.util.logging.Logger; public class RSAPSSSignature extends BaseSignature { - private static final Logger log = Logger.getLogger(RSAPSSSignature.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(RSAPSSSignature.class.getName()) : null; /** The underlying EMSA-PSS instance for this object. */ private EMSA_PSS pss; diff --git a/libjava/classpath/gnu/java/security/x509/X509CRL.java b/libjava/classpath/gnu/java/security/x509/X509CRL.java index 7c471c97284..518edaa2444 100644 --- a/libjava/classpath/gnu/java/security/x509/X509CRL.java +++ b/libjava/classpath/gnu/java/security/x509/X509CRL.java @@ -1,5 +1,5 @@ /* X509CRL.java -- X.509 certificate revocation list. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -77,7 +77,9 @@ import javax.security.auth.x500.X500Principal; public class X509CRL extends java.security.cert.X509CRL implements GnuPKIExtension { - private static final Logger log = Logger.getLogger(X509CRL.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(X509CRL.class.getName()) : null; + private static final OID ID_DSA = new OID("1.2.840.10040.4.1"); private static final OID ID_DSA_WITH_SHA1 = new OID("1.2.840.10040.4.3"); private static final OID ID_RSA = new OID("1.2.840.113549.1.1.1"); diff --git a/libjava/classpath/gnu/java/security/x509/X509CRLEntry.java b/libjava/classpath/gnu/java/security/x509/X509CRLEntry.java index 26b40363c35..64adf7f690a 100644 --- a/libjava/classpath/gnu/java/security/x509/X509CRLEntry.java +++ b/libjava/classpath/gnu/java/security/x509/X509CRLEntry.java @@ -1,5 +1,5 @@ /* X509CRLEntry.java -- an entry in a X.509 CRL. - Copyright (C) 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2003, 2004, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -65,7 +65,9 @@ import java.util.logging.Logger; class X509CRLEntry extends java.security.cert.X509CRLEntry implements GnuPKIExtension { - private static final Logger log = Logger.getLogger(X509CRLEntry.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(X509CRLEntry.class.getName()) : null; + /** The DER encoded form of this CRL entry. */ private byte[] encoded; diff --git a/libjava/classpath/gnu/java/security/x509/ext/Extension.java b/libjava/classpath/gnu/java/security/x509/ext/Extension.java index 2b7e96d5abc..b740c8ac41e 100644 --- a/libjava/classpath/gnu/java/security/x509/ext/Extension.java +++ b/libjava/classpath/gnu/java/security/x509/ext/Extension.java @@ -1,5 +1,5 @@ /* Extension.java -- an X.509 certificate or CRL extension. - Copyright (C) 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -53,7 +53,8 @@ import java.util.logging.Logger; public class Extension { - private static final Logger log = Logger.getLogger(Extension.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(Extension.class.getName()) : null; /** * This extension's object identifier. */ diff --git a/libjava/classpath/gnu/javax/crypto/cipher/Anubis.java b/libjava/classpath/gnu/javax/crypto/cipher/Anubis.java index 3526ad612c2..c2a7cce93b0 100644 --- a/libjava/classpath/gnu/javax/crypto/cipher/Anubis.java +++ b/libjava/classpath/gnu/javax/crypto/cipher/Anubis.java @@ -1,5 +1,5 @@ /* Anubis.java -- - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -67,7 +67,8 @@ import java.util.logging.Logger; public final class Anubis extends BaseCipher { - private static final Logger log = Logger.getLogger(Anubis.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(Anubis.class.getName()) : null; private static final int DEFAULT_BLOCK_SIZE = 16; // in bytes private static final int DEFAULT_KEY_SIZE = 16; // in bytes private static final String Sd = // p. 25 [ANUBIS] diff --git a/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java b/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java index 45aa2d6fd25..8dfd47e1e34 100644 --- a/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java +++ b/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java @@ -1,5 +1,5 @@ /* BaseCipher.java -- - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -56,7 +56,8 @@ import java.util.logging.Logger; public abstract class BaseCipher implements IBlockCipher, IBlockCipherSpi { - private static final Logger log = Logger.getLogger(BaseCipher.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(BaseCipher.class.getName()) : null; /** The canonical name prefix of the cipher. */ protected String name; /** The default block size, in bytes. */ diff --git a/libjava/classpath/gnu/javax/crypto/cipher/Khazad.java b/libjava/classpath/gnu/javax/crypto/cipher/Khazad.java index 55e42628bac..1c3b778a27d 100644 --- a/libjava/classpath/gnu/javax/crypto/cipher/Khazad.java +++ b/libjava/classpath/gnu/javax/crypto/cipher/Khazad.java @@ -1,5 +1,5 @@ /* Khazad.java -- - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -67,7 +67,8 @@ import java.util.logging.Logger; public final class Khazad extends BaseCipher { - private static final Logger log = Logger.getLogger(Khazad.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(Khazad.class.getName()) : null; private static final int DEFAULT_BLOCK_SIZE = 8; // in bytes private static final int DEFAULT_KEY_SIZE = 16; // in bytes private static final int R = 8; // standard number of rounds; para. 3.7 diff --git a/libjava/classpath/gnu/javax/crypto/cipher/Rijndael.java b/libjava/classpath/gnu/javax/crypto/cipher/Rijndael.java index 0463fe51de9..6ce3943601b 100644 --- a/libjava/classpath/gnu/javax/crypto/cipher/Rijndael.java +++ b/libjava/classpath/gnu/javax/crypto/cipher/Rijndael.java @@ -1,5 +1,5 @@ /* Rijndael.java -- - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -64,7 +64,8 @@ import java.util.logging.Logger; public final class Rijndael extends BaseCipher { - private static final Logger log = Logger.getLogger(Rijndael.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(Rijndael.class.getName()) : null; private static final int DEFAULT_BLOCK_SIZE = 16; // in bytes private static final int DEFAULT_KEY_SIZE = 16; // in bytes private static final String SS = diff --git a/libjava/classpath/gnu/javax/crypto/cipher/Twofish.java b/libjava/classpath/gnu/javax/crypto/cipher/Twofish.java index c9789a69935..7f3a341328b 100644 --- a/libjava/classpath/gnu/javax/crypto/cipher/Twofish.java +++ b/libjava/classpath/gnu/javax/crypto/cipher/Twofish.java @@ -1,5 +1,5 @@ /* Twofish.java -- - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -69,7 +69,8 @@ import java.util.logging.Logger; public final class Twofish extends BaseCipher { - private static final Logger log = Logger.getLogger(Twofish.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(Twofish.class.getName()) : null; private static final int DEFAULT_BLOCK_SIZE = 16; // in bytes private static final int DEFAULT_KEY_SIZE = 16; // in bytes private static final int MAX_ROUNDS = 16; // max # rounds (for allocating subkeys) diff --git a/libjava/classpath/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java b/libjava/classpath/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java index 97fdd5331eb..b9ce3789432 100644 --- a/libjava/classpath/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java +++ b/libjava/classpath/gnu/javax/crypto/jce/cipher/KeyWrappingAlgorithmAdapter.java @@ -1,5 +1,5 @@ /* KeyWrappingAlgorithmAdapter.java -- Base Adapter for Key Wrapping algorithms - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -76,7 +76,8 @@ import javax.crypto.spec.SecretKeySpec; abstract class KeyWrappingAlgorithmAdapter extends CipherSpi { - private static final Logger log = Logger.getLogger(KeyWrappingAlgorithmAdapter.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(KeyWrappingAlgorithmAdapter.class.getName()) : null; /** JCE canonical name of a null-padder. */ private static final String NO_PADDING = "nopadding"; /** Concrete Key Wrapping Algorithm SPI. */ diff --git a/libjava/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java b/libjava/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java index c30da69a2bf..39d402a0072 100644 --- a/libjava/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java +++ b/libjava/classpath/gnu/javax/crypto/jce/keyring/GnuKeyring.java @@ -1,5 +1,5 @@ /* GnuKeyring.java -- KeyStore adapter for a pair of private and public Keyrings - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -77,7 +77,8 @@ import javax.crypto.SecretKey; public class GnuKeyring extends KeyStoreSpi { - private static final Logger log = Logger.getLogger(GnuKeyring.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(GnuKeyring.class.getName()) : null; private static final String NOT_LOADED = "not loaded"; /** TRUE if the keystore is loaded; FALSE otherwise. */ diff --git a/libjava/classpath/gnu/javax/crypto/jce/params/BlockCipherParameters.java b/libjava/classpath/gnu/javax/crypto/jce/params/BlockCipherParameters.java index fde83b1f305..a6dd247518e 100644 --- a/libjava/classpath/gnu/javax/crypto/jce/params/BlockCipherParameters.java +++ b/libjava/classpath/gnu/javax/crypto/jce/params/BlockCipherParameters.java @@ -1,5 +1,5 @@ /* BlockCipherParameters.java -- - Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -59,7 +59,8 @@ import javax.crypto.spec.IvParameterSpec; public class BlockCipherParameters extends AlgorithmParametersSpi { - private static final Logger log = Logger.getLogger(BlockCipherParameters.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(BlockCipherParameters.class.getName()) : null; /** The underlying block cipher specification. */ protected BlockCipherParameterSpec cipherSpec; private static final String DEFAULT_FORMAT = "ASN.1"; diff --git a/libjava/classpath/gnu/javax/crypto/jce/prng/ICMRandomSpi.java b/libjava/classpath/gnu/javax/crypto/jce/prng/ICMRandomSpi.java index bbd5d476864..b4fcdf81f4c 100644 --- a/libjava/classpath/gnu/javax/crypto/jce/prng/ICMRandomSpi.java +++ b/libjava/classpath/gnu/javax/crypto/jce/prng/ICMRandomSpi.java @@ -1,5 +1,5 @@ /* ICMRandomSpi.java -- - Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -58,7 +58,8 @@ import java.util.logging.Logger; public class ICMRandomSpi extends SecureRandomSpi { - private static final Logger log = Logger.getLogger(ICMRandomSpi.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(ICMRandomSpi.class.getName()) : null; /** Class-wide prng to generate random material for the underlying prng. */ private static final ICMGenerator prng; // blank final static diff --git a/libjava/classpath/gnu/javax/crypto/jce/prng/UMacRandomSpi.java b/libjava/classpath/gnu/javax/crypto/jce/prng/UMacRandomSpi.java index 910e65c7033..20a467ee3ec 100644 --- a/libjava/classpath/gnu/javax/crypto/jce/prng/UMacRandomSpi.java +++ b/libjava/classpath/gnu/javax/crypto/jce/prng/UMacRandomSpi.java @@ -1,5 +1,5 @@ /* UMacRandomSpi.java -- - Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -57,7 +57,8 @@ import java.util.logging.Logger; public class UMacRandomSpi extends SecureRandomSpi { - private static final Logger log = Logger.getLogger(UMacRandomSpi.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(UMacRandomSpi.class.getName()) : null; /** Class-wide prng to generate random material for the underlying prng. */ private static final UMacGenerator prng; // blank final diff --git a/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java b/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java index 89e9c4c80ec..a1a19c3b3ff 100644 --- a/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java +++ b/libjava/classpath/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.java @@ -1,5 +1,5 @@ /* GnuDHKeyPairGenerator.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -40,7 +40,6 @@ package gnu.javax.crypto.key.dh; import gnu.java.security.Configuration; import gnu.java.security.Registry; -import gnu.java.security.hash.Sha160; import gnu.java.security.key.IKeyPairGenerator; import gnu.java.security.util.PRNG; @@ -68,7 +67,9 @@ import javax.crypto.spec.DHParameterSpec; public class GnuDHKeyPairGenerator implements IKeyPairGenerator { - private static final Logger log = Logger.getLogger(GnuDHKeyPairGenerator.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(GnuDHKeyPairGenerator.class.getName()) : null; + /** * Property name of an optional {@link SecureRandom} instance to use. The * default is to use a classloader singleton from {@link PRNG}. @@ -95,10 +96,8 @@ public class GnuDHKeyPairGenerator public static final int DEFAULT_EXPONENT_SIZE = 160; /** Default encoding format to use when none was specified. */ private static final int DEFAULT_ENCODING_FORMAT = Registry.RAW_ENCODING_ID; - /** The SHA instance to use. */ - private Sha160 sha = new Sha160(); /** The optional {@link SecureRandom} instance to use. */ - private SecureRandom rnd = null; + private SecureRandom rnd; /** The desired size in bits of the public prime (p). */ private int l; /** The desired size in bits of the private exponent (x). */ diff --git a/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java b/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java index 59e5bc94364..25f3d842557 100644 --- a/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java +++ b/libjava/classpath/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.java @@ -1,5 +1,5 @@ /* SRPKeyPairGenerator.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -59,7 +59,9 @@ import java.util.logging.Logger; public class SRPKeyPairGenerator implements IKeyPairGenerator { - private static final Logger log = Logger.getLogger(SRPKeyPairGenerator.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(SRPKeyPairGenerator.class.getName()) : null; + private static final BigInteger ZERO = BigInteger.ZERO; private static final BigInteger ONE = BigInteger.ONE; private static final BigInteger TWO = BigInteger.valueOf(2L); diff --git a/libjava/classpath/gnu/javax/crypto/keyring/Entry.java b/libjava/classpath/gnu/javax/crypto/keyring/Entry.java index d4592494040..b29c0442c17 100644 --- a/libjava/classpath/gnu/javax/crypto/keyring/Entry.java +++ b/libjava/classpath/gnu/javax/crypto/keyring/Entry.java @@ -1,5 +1,5 @@ /* Entry.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -50,7 +50,8 @@ import java.util.logging.Logger; */ public abstract class Entry { - private static final Logger log = Logger.getLogger(Entry.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(Entry.class.getName()) : null; private static final String[] TYPES = new String[] { "Encrypted", "PasswordEncrypted", diff --git a/libjava/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java b/libjava/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java index 76aba7d7b10..faaa7a808ea 100644 --- a/libjava/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java +++ b/libjava/classpath/gnu/javax/crypto/keyring/EnvelopeEntry.java @@ -1,5 +1,5 @@ /* EnvelopeEntry.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -58,7 +58,8 @@ import java.util.logging.Logger; public abstract class EnvelopeEntry extends Entry { - private static final Logger log = Logger.getLogger(EnvelopeEntry.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(EnvelopeEntry.class.getName()) : null; /** The envelope that contains this one (if any). */ protected EnvelopeEntry containingEnvelope; /** The contained entries. */ diff --git a/libjava/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java b/libjava/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java index d7387f892b0..474014f3914 100644 --- a/libjava/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java +++ b/libjava/classpath/gnu/javax/crypto/keyring/GnuPublicKeyring.java @@ -1,5 +1,5 @@ /* GnuPublicKeyring.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -55,7 +55,8 @@ public class GnuPublicKeyring extends BaseKeyring implements IPublicKeyring { - private static final Logger log = Logger.getLogger(GnuPublicKeyring.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(GnuPublicKeyring.class.getName()) : null; public static final int USAGE = Registry.GKR_CERTIFICATES; public GnuPublicKeyring(String mac, int macLen) diff --git a/libjava/classpath/gnu/javax/crypto/mac/OMAC.java b/libjava/classpath/gnu/javax/crypto/mac/OMAC.java index 6758b314fa7..c9ea36ef917 100644 --- a/libjava/classpath/gnu/javax/crypto/mac/OMAC.java +++ b/libjava/classpath/gnu/javax/crypto/mac/OMAC.java @@ -1,5 +1,5 @@ /* OMAC.java -- - Copyright (C) 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -65,7 +65,8 @@ import java.util.logging.Logger; public class OMAC implements IMac { - private static final Logger log = Logger.getLogger(OMAC.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(OMAC.class.getName()) : null; private static final byte C1 = (byte) 0x87; private static final byte C2 = 0x1b; // Test key for OMAC-AES-128 diff --git a/libjava/classpath/gnu/javax/crypto/pad/BasePad.java b/libjava/classpath/gnu/javax/crypto/pad/BasePad.java index feeaca2f07d..50b3bf094dd 100644 --- a/libjava/classpath/gnu/javax/crypto/pad/BasePad.java +++ b/libjava/classpath/gnu/javax/crypto/pad/BasePad.java @@ -1,5 +1,5 @@ /* BasePad.java -- - Copyright (C) 2001, 2002, 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -52,7 +52,8 @@ import java.util.logging.Logger; public abstract class BasePad implements IPad { - private static final Logger log = Logger.getLogger(BasePad.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(BasePad.class.getName()) : null; /** The canonical name prefix of the padding algorithm. */ protected String name; /** The block size, in bytes, for this instance. */ diff --git a/libjava/classpath/gnu/javax/crypto/pad/PKCS1_V1_5.java b/libjava/classpath/gnu/javax/crypto/pad/PKCS1_V1_5.java index e303264aed6..021107e6994 100644 --- a/libjava/classpath/gnu/javax/crypto/pad/PKCS1_V1_5.java +++ b/libjava/classpath/gnu/javax/crypto/pad/PKCS1_V1_5.java @@ -1,5 +1,5 @@ /* PKCS1_V1_5.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -66,7 +66,8 @@ import java.util.logging.Logger; public class PKCS1_V1_5 extends BasePad { - private static final Logger log = Logger.getLogger(PKCS1_V1_5.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(PKCS1_V1_5.class.getName()) : null; private EME_PKCS1_V1_5 codec; /** diff --git a/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java b/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java index 9dd67fc81a0..1ee839e5ad2 100644 --- a/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java +++ b/libjava/classpath/gnu/javax/crypto/pad/PKCS7.java @@ -1,5 +1,5 @@ /* PKCS7.java -- - Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -65,7 +65,8 @@ import java.util.logging.Logger; public final class PKCS7 extends BasePad { - private static final Logger log = Logger.getLogger(PKCS7.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(PKCS7.class.getName()) : null; /** * Trivial package-private constructor for use by the Factory class. diff --git a/libjava/classpath/gnu/javax/crypto/pad/TBC.java b/libjava/classpath/gnu/javax/crypto/pad/TBC.java index 5cd177058f3..9fcc415507c 100644 --- a/libjava/classpath/gnu/javax/crypto/pad/TBC.java +++ b/libjava/classpath/gnu/javax/crypto/pad/TBC.java @@ -1,5 +1,5 @@ /* TBC.java -- - Copyright (C) 2001, 2002, 2006 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -64,7 +64,8 @@ import java.util.logging.Logger; public final class TBC extends BasePad { - private static final Logger log = Logger.getLogger(TBC.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(TBC.class.getName()) : null; /** * Trivial package-private constructor for use by the Factory class. diff --git a/libjava/classpath/gnu/javax/crypto/prng/CSPRNG.java b/libjava/classpath/gnu/javax/crypto/prng/CSPRNG.java index ecea2f46919..04d381a7a25 100644 --- a/libjava/classpath/gnu/javax/crypto/prng/CSPRNG.java +++ b/libjava/classpath/gnu/javax/crypto/prng/CSPRNG.java @@ -1,5 +1,5 @@ /* CSPRNG.java -- continuously-seeded pseudo-random number generator. - Copyright (C) 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -87,7 +87,9 @@ import java.util.logging.Logger; public class CSPRNG extends BasePRNG { - private static final Logger log = Logger.getLogger(CSPRNG.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(CSPRNG.class.getName()) : null; + /** * Property name for the list of files to read for random values. The mapped * value is a list with the following values: @@ -325,20 +327,24 @@ public class CSPRNG attrib.put(PROGRAM_SOURCES, l); l = new LinkedList(); for (int i = 0; (s = getProperty(OTHER + i)) != null; i++) - try - { - Class c = Class.forName(s.trim()); - l.add(c.newInstance()); - } - catch (ClassNotFoundException cnfe) - { - } - catch (InstantiationException ie) - { - } - catch (IllegalAccessException iae) - { - } + { + try + { + l.add((EntropySource)Class.forName(s.trim()).newInstance()); + } + catch (ClassNotFoundException cnfe) + { + // ignore + } + catch (InstantiationException ie) + { + // ignore + } + catch (IllegalAccessException iae) + { + // ignore + } + } attrib.put(OTHER_SOURCES, l); instance.init(attrib); return instance; diff --git a/libjava/classpath/gnu/javax/crypto/sasl/SaslInputStream.java b/libjava/classpath/gnu/javax/crypto/sasl/SaslInputStream.java index 6a6c8575115..e505d4525bb 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/SaslInputStream.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/SaslInputStream.java @@ -1,5 +1,5 @@ /* SaslInputStream.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -57,7 +57,8 @@ import javax.security.sasl.SaslServer; public class SaslInputStream extends InputStream { - private static final Logger log = Logger.getLogger(SaslInputStream.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(SaslInputStream.class.getName()) : null; private SaslClient client; private SaslServer server; private int maxRawSendSize; diff --git a/libjava/classpath/gnu/javax/crypto/sasl/SaslOutputStream.java b/libjava/classpath/gnu/javax/crypto/sasl/SaslOutputStream.java index 0de1ce85068..eee0ba0f9d9 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/SaslOutputStream.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/SaslOutputStream.java @@ -1,5 +1,5 @@ /* SaslOutputStream.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -56,7 +56,8 @@ import javax.security.sasl.SaslServer; public class SaslOutputStream extends OutputStream { - private static final Logger log = Logger.getLogger(SaslOutputStream.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(SaslOutputStream.class.getName()) : null; private SaslClient client; private SaslServer server; private int maxRawSendSize; diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java index 8e44e4ead6e..c20d477c787 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java @@ -1,5 +1,5 @@ /* SRPClient.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -87,7 +87,8 @@ public class SRPClient extends ClientMechanism implements SaslClient { - private static final Logger log = Logger.getLogger(SRPClient.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(SRPClient.class.getName()) : null; private String uid; // the unique key for this type of client private String U; // the authentication identity BigInteger N, g, A, B; diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java index fca5c3bf338..c92ada4b353 100644 --- a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java +++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java @@ -1,5 +1,5 @@ /* SRPServer.java -- - Copyright (C) 2003, 2006 Free Software Foundation, Inc. + Copyright (C) 2003, 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -79,7 +79,8 @@ public class SRPServer extends ServerMechanism implements SaslServer { - private static final Logger log = Logger.getLogger(SRPServer.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(SRPServer.class.getName()) : null; private String U = null; // client's username private BigInteger N, g, A, B; private byte[] s; // salt diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java b/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java index 1c59231290b..e3a0bc4b157 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java @@ -73,127 +73,127 @@ public final class CipherSuite implements Constructed KeyExchangeAlgorithm.NONE, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.NULL, 0, 0x00, 0x00, - "TLS_NULL_WITH_NULL_NULL"); + "TLS_NULL_WITH_NULL_NULL", false); public static final CipherSuite TLS_RSA_WITH_NULL_MD5 = new CipherSuite (CipherAlgorithm.NULL, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.MD5, 0, 0x00, 0x01, - "TLS_RSA_WITH_NULL_MD5"); + "TLS_RSA_WITH_NULL_MD5", false); public static final CipherSuite TLS_RSA_WITH_NULL_SHA = new CipherSuite (CipherAlgorithm.NULL, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 0, 0x00, 0x02, - "TLS_RSA_WITH_NULL_SHA"); + "TLS_RSA_WITH_NULL_SHA", false); public static final CipherSuite TLS_RSA_EXPORT_WITH_RC4_40_MD5 = new CipherSuite (CipherAlgorithm.RC4, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.MD5, 5, 0x00, 0x03, - "TLS_RSA_EXPORT_WITH_RC4_40_MD5"); + "TLS_RSA_EXPORT_WITH_RC4_40_MD5", false); public static final CipherSuite TLS_RSA_WITH_RC4_128_MD5 = new CipherSuite (CipherAlgorithm.RC4, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.MD5, 16, 0x00, 0x04, - "TLS_RSA_WITH_RC4_128_MD5"); + "TLS_RSA_WITH_RC4_128_MD5", false); public static final CipherSuite TLS_RSA_WITH_RC4_128_SHA = new CipherSuite (CipherAlgorithm.RC4, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 16, 0x00, 0x05, - "TLS_RSA_WITH_RC4_128_SHA"); + "TLS_RSA_WITH_RC4_128_SHA", false); public static final CipherSuite TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 5, 0x00, 0x08, - "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA"); + "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA", true); public static final CipherSuite TLS_RSA_WITH_DES_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 8, 0x00, 0x09, - "TLS_RSA_WITH_DES_CBC_SHA"); + "TLS_RSA_WITH_DES_CBC_SHA", true); public static final CipherSuite TLS_RSA_WITH_3DES_EDE_CBC_SHA = new CipherSuite (CipherAlgorithm.DESede, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 24, 0x00, 0x0A, - "TLS_RSA_WITH_3DES_EDE_CBC_SHA"); + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", true); public static final CipherSuite TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.DH_DSS, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 5, 0x00, 0x0B, - "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA"); + "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA", true); public static final CipherSuite TLS_DH_DSS_WITH_DES_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.DH_DSS, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 8, 0x00, 0x0C, - "TLS_DH_DSS_WITH_DES_CBC_SHA"); + "TLS_DH_DSS_WITH_DES_CBC_SHA", true); public static final CipherSuite TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = new CipherSuite (CipherAlgorithm.DESede, KeyExchangeAlgorithm.DH_DSS, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 24, 0x00, 0x0D, - "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA"); + "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA", true); public static final CipherSuite TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.DH_RSA, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 5, 0x00, 0x0E, - "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA"); + "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA", true); public static final CipherSuite TLS_DH_RSA_WITH_DES_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.DH_RSA, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 8, 0x00, 0x0F, - "TLS_DH_RSA_WITH_DES_CBC_SHA"); + "TLS_DH_RSA_WITH_DES_CBC_SHA", true); public static final CipherSuite TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = new CipherSuite (CipherAlgorithm.DESede, KeyExchangeAlgorithm.DH_RSA, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 24, 0x00, 0x10, - "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA"); + "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA", true); public static final CipherSuite TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.DHE_DSS, true, SignatureAlgorithm.DSA, MacAlgorithm.SHA, 5, 0x00, 0x11, - "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA"); + "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", true); public static final CipherSuite TLS_DHE_DSS_WITH_DES_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.DHE_DSS, true, SignatureAlgorithm.DSA, MacAlgorithm.SHA, 8, 0x00, 0x12, - "TLS_DHE_DSS_WITH_DES_CBC_SHA"); + "TLS_DHE_DSS_WITH_DES_CBC_SHA", true); public static final CipherSuite TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = new CipherSuite (CipherAlgorithm.DESede, KeyExchangeAlgorithm.DHE_DSS, true, SignatureAlgorithm.DSA, MacAlgorithm.SHA, 24, 0x00, 0x13, - "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA"); + "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA", true); public static final CipherSuite TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.DHE_RSA, true, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 5, 0x00, 0x14, - "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA"); + "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", true); public static final CipherSuite TLS_DHE_RSA_WITH_DES_CBC_SHA = new CipherSuite (CipherAlgorithm.DES, KeyExchangeAlgorithm.DHE_RSA, true, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 8, 0x00, 0x15, - "TLS_DHE_RSA_WITH_DES_CBC_SHA"); + "TLS_DHE_RSA_WITH_DES_CBC_SHA", true); public static final CipherSuite TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = new CipherSuite (CipherAlgorithm.DESede, KeyExchangeAlgorithm.DHE_RSA, true, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 24, 0x00, 0x16, - "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA"); + "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", true); // AES CipherSuites. public static final CipherSuite TLS_RSA_WITH_AES_128_CBC_SHA = @@ -201,61 +201,61 @@ public final class CipherSuite implements Constructed KeyExchangeAlgorithm.RSA, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 16, 0x00, 0x2F, - "TLS_RSA_WITH_AES_128_CBC_SHA"); + "TLS_RSA_WITH_AES_128_CBC_SHA", true); public static final CipherSuite TLS_DH_DSS_WITH_AES_128_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.DH_DSS, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 16, 0x00, 0x30, - "TLS_DH_DSS_WITH_AES_128_CBC_SHA"); + "TLS_DH_DSS_WITH_AES_128_CBC_SHA", true); public static final CipherSuite TLS_DH_RSA_WITH_AES_128_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.DH_RSA, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 16, 0x00, 0x31, - "TLS_DH_RSA_WITH_AES_128_CBC_SHA"); + "TLS_DH_RSA_WITH_AES_128_CBC_SHA", true); public static final CipherSuite TLS_DHE_DSS_WITH_AES_128_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.DHE_DSS, true, SignatureAlgorithm.DSA, MacAlgorithm.SHA, 16, 0x00, 0x32, - "TLS_DHE_DSS_WITH_AES_128_CBC_SHA"); + "TLS_DHE_DSS_WITH_AES_128_CBC_SHA", true); public static final CipherSuite TLS_DHE_RSA_WITH_AES_128_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.DHE_RSA, true, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 16, 0x00, 0x33, - "TLS_DHE_RSA_WITH_AES_128_CBC_SHA"); + "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", true); public static final CipherSuite TLS_RSA_WITH_AES_256_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.RSA, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 32, 0x00, 0x35, - "TLS_RSA_WITH_AES_256_CBC_SHA"); + "TLS_RSA_WITH_AES_256_CBC_SHA", true); public static final CipherSuite TLS_DH_DSS_WITH_AES_256_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.DH_DSS, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 32, 0x00, 0x36, - "TLS_DH_DSS_WITH_AES_256_CBC_SHA"); + "TLS_DH_DSS_WITH_AES_256_CBC_SHA", true); public static final CipherSuite TLS_DH_RSA_WITH_AES_256_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.DH_RSA, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 32, 0x00, 0x37, - "TLS_DH_RSA_WITH_AES_256_CBC_SHA"); + "TLS_DH_RSA_WITH_AES_256_CBC_SHA", true); public static final CipherSuite TLS_DHE_DSS_WITH_AES_256_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.DHE_DSS, true, SignatureAlgorithm.DSA, MacAlgorithm.SHA, 32, 0x00, 0x38, - "TLS_DHE_DSS_WITH_AES_256_CBC_SHA"); + "TLS_DHE_DSS_WITH_AES_256_CBC_SHA", true); public static final CipherSuite TLS_DHE_RSA_WITH_AES_256_CBC_SHA = new CipherSuite (CipherAlgorithm.AES, KeyExchangeAlgorithm.DHE_RSA, true, SignatureAlgorithm.RSA, MacAlgorithm.SHA, 32, 0x00, 0x39, - "TLS_DHE_RSA_WITH_AES_256_CBC_SHA"); + "TLS_DHE_RSA_WITH_AES_256_CBC_SHA", true); // Secure remote password (SRP) ciphersuites // Actual ID values are TBD, so these are omitted until they are specified. @@ -320,75 +320,75 @@ public final class CipherSuite implements Constructed KeyExchangeAlgorithm.PSK, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 16, 0x00, 0x8A, - "TLS_PSK_WITH_RC4_128_SHA"); + "TLS_PSK_WITH_RC4_128_SHA", true); public static final CipherSuite TLS_PSK_WITH_3DES_EDE_CBC_SHA = new CipherSuite(CipherAlgorithm.DESede, KeyExchangeAlgorithm.PSK, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 24, 0x00, 0x8B, - "TLS_PSK_WITH_3DES_EDE_CBC_SHA"); + "TLS_PSK_WITH_3DES_EDE_CBC_SHA", true); public static final CipherSuite TLS_PSK_WITH_AES_128_CBC_SHA = new CipherSuite(CipherAlgorithm.AES, KeyExchangeAlgorithm.PSK, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 16, 0x00, 0x8C, - "TLS_PSK_WITH_AES_128_CBC_SHA"); + "TLS_PSK_WITH_AES_128_CBC_SHA", true); public static final CipherSuite TLS_PSK_WITH_AES_256_CBC_SHA = new CipherSuite(CipherAlgorithm.AES, KeyExchangeAlgorithm.PSK, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 32, 0x00, 0x8D, - "TLS_PSK_WITH_AES_256_CBC_SHA"); + "TLS_PSK_WITH_AES_256_CBC_SHA", true); public static final CipherSuite TLS_DHE_PSK_WITH_RC4_128_SHA = new CipherSuite(CipherAlgorithm.RC4, KeyExchangeAlgorithm.DHE_PSK, true, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 16, 0x00, 0x8E, - "TLS_DHE_PSK_WITH_RC4_128_SHA"); + "TLS_DHE_PSK_WITH_RC4_128_SHA", false); public static final CipherSuite TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = new CipherSuite(CipherAlgorithm.DESede, KeyExchangeAlgorithm.DHE_PSK, true, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 24, 0x00, 0x8F, - "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA"); + "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA", true); public static final CipherSuite TLS_DHE_PSK_WITH_AES_128_CBC_SHA = new CipherSuite(CipherAlgorithm.AES, KeyExchangeAlgorithm.DHE_PSK, true, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 16, 0x00, 0x90, - "TLS_DHE_PSK_WITH_AES_128_CBC_SHA"); + "TLS_DHE_PSK_WITH_AES_128_CBC_SHA", true); public static final CipherSuite TLS_DHE_PSK_WITH_AES_256_CBC_SHA = new CipherSuite(CipherAlgorithm.AES, KeyExchangeAlgorithm.DHE_PSK, true, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 32, 0x00, 0x91, - "TLS_DHE_PSK_WITH_AES_256_CBC_SHA"); + "TLS_DHE_PSK_WITH_AES_256_CBC_SHA", true); public static final CipherSuite TLS_RSA_PSK_WITH_RC4_128_SHA = new CipherSuite(CipherAlgorithm.RC4, KeyExchangeAlgorithm.RSA_PSK, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 16, 0x00, 0x92, - "TLS_RSA_PSK_WITH_RC4_128_SHA"); + "TLS_RSA_PSK_WITH_RC4_128_SHA", false); public static final CipherSuite TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = new CipherSuite(CipherAlgorithm.DESede, KeyExchangeAlgorithm.RSA_PSK, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 24, 0x00, 0x93, - "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA"); + "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA", true); public static final CipherSuite TLS_RSA_PSK_WITH_AES_128_CBC_SHA = new CipherSuite(CipherAlgorithm.AES, KeyExchangeAlgorithm.RSA_PSK, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 16, 0x00, 0x94, - "TLS_RSA_PSK_WITH_AES_128_CBC_SHA"); + "TLS_RSA_PSK_WITH_AES_128_CBC_SHA", true); public static final CipherSuite TLS_RSA_PSK_WITH_AES_256_CBC_SHA = new CipherSuite(CipherAlgorithm.AES, KeyExchangeAlgorithm.RSA_PSK, SignatureAlgorithm.ANONYMOUS, MacAlgorithm.SHA, 32, 0x00, 0x95, - "TLS_RSA_PSK_WITH_AES_256_CBC_SHA"); + "TLS_RSA_PSK_WITH_AES_256_CBC_SHA", true); // Ciphersuites from the OpenPGP extension draft. // These disappeared from a more recent draft. @@ -490,6 +490,7 @@ public final class CipherSuite implements Constructed private final boolean ephemeralDH; private final boolean exportable; private final boolean isStream; + private final boolean isCBCMode; private final int keyLength; private final byte[] id; private final String name; @@ -505,10 +506,11 @@ public final class CipherSuite implements Constructed final int keyLength, final int id1, final int id2, - final String name) + final String name, + final boolean isCBCMode) { this (cipherAlgorithm, keyExchangeAlgorithm, false, signatureAlgorithm, - macAlgorithm, keyLength, id1, id2, name); + macAlgorithm, keyLength, id1, id2, name, isCBCMode); } private CipherSuite (final CipherAlgorithm cipherAlgorithm, @@ -519,7 +521,8 @@ public final class CipherSuite implements Constructed final int keyLength, final int id1, final int id2, - final String name) + final String name, + final boolean isCBCMode) { this.cipherAlgorithm = cipherAlgorithm; this.keyExchangeAlgorithm = keyExchangeAlgorithm; @@ -529,6 +532,7 @@ public final class CipherSuite implements Constructed this.exportable = keyLength <= 5; this.isStream = (cipherAlgorithm == CipherAlgorithm.NULL || cipherAlgorithm == CipherAlgorithm.RC4); + this.isCBCMode = isCBCMode; this.keyLength = keyLength; this.id = new byte[] { (byte) id1, (byte) id2 }; this.name = name.intern(); @@ -549,6 +553,7 @@ public final class CipherSuite implements Constructed ephemeralDH = false; exportable = false; isStream = false; + isCBCMode = false; keyLength = 0; this.id = id; name = null; @@ -598,10 +603,10 @@ public final class CipherSuite implements Constructed return new NullCipher (); String alg = null; - if (cipherAlgorithm == CipherAlgorithm.RC4) - alg = "RC4"; - else + if (isCBCMode) alg = cipherAlgorithm + "/CBC/NoPadding"; + else + alg = cipherAlgorithm.toString(); GetSecurityPropertyAction gspa = new GetSecurityPropertyAction ("jessie.jce.provider"); final String provider = (String) AccessController.doPrivileged (gspa); @@ -834,4 +839,10 @@ public final class CipherSuite implements Constructed } return name; } + + public boolean isCBCMode() + { + return isCBCMode; + } + } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java b/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java index c6ed7d5876a..61742439782 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java @@ -62,6 +62,17 @@ public class OutputSecurityParameters private final CipherSuite suite; private long sequence; + static final boolean enableCBCProtection; + + static + { + String enabled = Util.getProperty("jsse.enableCBCProtection"); + if (enabled == null) + enableCBCProtection = true; + else + enableCBCProtection = Boolean.valueOf(enabled); + } + public OutputSecurityParameters (final Cipher cipher, final Mac mac, final Deflater deflater, SessionImpl session, CipherSuite suite) @@ -291,4 +302,11 @@ public class OutputSecurityParameters { return suite; } + + boolean needToSplitPayload() + { + return (session.version.compareTo(ProtocolVersion.TLS_1_1) < 0 && + suite.isCBCMode() && enableCBCProtection); + } + } diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java b/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java index b63fb2f20f2..a62801f9932 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/SSLEngineImpl.java @@ -768,10 +768,27 @@ public final class SSLEngineImpl extends SSLEngine } else { - inout = outsec.encrypt(sources, offset, length, - ContentType.APPLICATION_DATA, sink); - consumed = inout[0]; - produced = inout[1]; + if (outsec.needToSplitPayload()) + { + inout = outsec.encrypt(sources, offset, 1, + ContentType.APPLICATION_DATA, sink); + consumed = inout[0]; + produced = inout[1]; + if (length > 1) + { + inout = outsec.encrypt(sources, offset+1, length-1, + ContentType.APPLICATION_DATA, sink); + consumed += inout[0]; + produced += inout[1]; + } + } + else + { + inout = outsec.encrypt(sources, offset, length, + ContentType.APPLICATION_DATA, sink); + consumed = inout[0]; + produced = inout[1]; + } } if (Debug.DEBUG) diff --git a/libjava/classpath/gnu/javax/print/PrinterDialog.java b/libjava/classpath/gnu/javax/print/PrinterDialog.java index 6557baf4f81..16ca7edc0c5 100644 --- a/libjava/classpath/gnu/javax/print/PrinterDialog.java +++ b/libjava/classpath/gnu/javax/print/PrinterDialog.java @@ -1,5 +1,5 @@ /* PrinterDialog.java -- - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -1452,12 +1452,8 @@ public final class PrinterDialog extends JDialog implements ActionListener private boolean onlyPageDialog; private PrintRequestAttributeSet atts; - private final static ResourceBundle messages; - - static - { - messages = ResourceBundle.getBundle("gnu/javax/print/PrinterDialog"); - } + private final static ResourceBundle messages + = ResourceBundle.getBundle("gnu.javax.print.MessagesBundle"); // TODO LowPriority: Include checks so that if a specific value formerly // selected is no more supported by the new service changes to the default. diff --git a/libjava/classpath/gnu/javax/security/auth/login/ConfigFileParser.java b/libjava/classpath/gnu/javax/security/auth/login/ConfigFileParser.java index 5c4c4261f5f..bebd036f986 100644 --- a/libjava/classpath/gnu/javax/security/auth/login/ConfigFileParser.java +++ b/libjava/classpath/gnu/javax/security/auth/login/ConfigFileParser.java @@ -1,5 +1,5 @@ /* ConfigFileParser.java -- JAAS Login Configuration default syntax parser - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -91,9 +91,11 @@ import javax.security.auth.login.AppConfigurationEntry; */ public final class ConfigFileParser { - private static final Logger log = Logger.getLogger(ConfigFileParser.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(ConfigFileParser.class.getName()) : null; + private ConfigFileTokenizer cft; - private Map map = new HashMap(); + private final Map map = new HashMap(); // default 0-arguments constructor diff --git a/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java b/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java index fc35bf77213..f120f4e60ac 100644 --- a/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java +++ b/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java @@ -1,5 +1,5 @@ /* ConfigFileTokenizer.java -- JAAS Login Configuration default syntax tokenizer - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -81,7 +81,9 @@ import java.util.logging.Logger; */ public class ConfigFileTokenizer { - private static final Logger log = Logger.getLogger(ConfigFileParser.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(ConfigFileParser.class.getName()) : null; + /** A constant indicating that the end of the stream has been read. */ public static final int TT_EOF = -1; /** A constant indicating that a word token has been read. */ @@ -92,7 +94,7 @@ public class ConfigFileTokenizer public String sval; public int ttype; - private BufferedReader br; + private final BufferedReader br; boolean initialised; private CPStringBuilder sb; private int sbNdx; @@ -103,10 +105,7 @@ public class ConfigFileTokenizer /** Trivial constructor. */ ConfigFileTokenizer(Reader r) { - super(); - br = r instanceof BufferedReader ? (BufferedReader) r : new BufferedReader(r); - initialised = false; } // Class methods diff --git a/libjava/classpath/gnu/javax/security/auth/login/GnuConfiguration.java b/libjava/classpath/gnu/javax/security/auth/login/GnuConfiguration.java index 20d8f3afd0d..6afe1cd195d 100644 --- a/libjava/classpath/gnu/javax/security/auth/login/GnuConfiguration.java +++ b/libjava/classpath/gnu/javax/security/auth/login/GnuConfiguration.java @@ -1,5 +1,5 @@ /* GnuConfiguration.java -- GNU Classpath implementation of JAAS Configuration - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -128,7 +128,9 @@ import javax.security.auth.login.Configuration; */ public final class GnuConfiguration extends Configuration { - private static final Logger log = Logger.getLogger(GnuConfiguration.class.getName()); + private static final Logger log = gnu.java.security.Configuration.DEBUG ? + Logger.getLogger(GnuConfiguration.class.getName()) : null; + /** * The internal map of login modules keyed by application name. Each entry in * this map is a {@link List} of {@link AppConfigurationEntry}s for that diff --git a/libjava/classpath/include/Makefile.am b/libjava/classpath/include/Makefile.am index ab59f0f42b0..223975f8ab0 100644 --- a/libjava/classpath/include/Makefile.am +++ b/libjava/classpath/include/Makefile.am @@ -145,6 +145,7 @@ gnu_java_nio_VMSelector.h \ gnu_java_nio_charset_iconv_IconvEncoder.h \ gnu_java_nio_charset_iconv_IconvDecoder.h \ gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \ +java_io_VMConsole.h \ java_io_VMFile.h \ java_io_VMObjectInputStream.h \ java_io_VMObjectStreamClass.h \ @@ -385,6 +386,8 @@ gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.ja $(JAVAH) -o $@ gnu.java.nio.VMSelector gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java $(JAVAH) -o $@ gnu.java.lang.management.VMOperatingSystemMXBeanImpl +java_io_VMConsole.h: $(top_srcdir)/vm/reference/java/io/VMConsole.java + $(JAVAH) -o $@ java.io.VMConsole java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java $(JAVAH) -o $@ java.io.VMFile java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java diff --git a/libjava/classpath/include/Makefile.in b/libjava/classpath/include/Makefile.in index 63b020e3dd0..1039aee441d 100644 --- a/libjava/classpath/include/Makefile.in +++ b/libjava/classpath/include/Makefile.in @@ -420,6 +420,7 @@ gnu_java_nio_VMSelector.h \ gnu_java_nio_charset_iconv_IconvEncoder.h \ gnu_java_nio_charset_iconv_IconvDecoder.h \ gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \ +java_io_VMConsole.h \ java_io_VMFile.h \ java_io_VMObjectInputStream.h \ java_io_VMObjectStreamClass.h \ @@ -863,6 +864,8 @@ uninstall-am: @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.nio.VMSelector @CREATE_JNI_HEADERS_TRUE@gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.lang.management.VMOperatingSystemMXBeanImpl +@CREATE_JNI_HEADERS_TRUE@java_io_VMConsole.h: $(top_srcdir)/vm/reference/java/io/VMConsole.java +@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.io.VMConsole @CREATE_JNI_HEADERS_TRUE@java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java @CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ java.io.VMFile @CREATE_JNI_HEADERS_TRUE@java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java diff --git a/libjava/classpath/include/config.h.in b/libjava/classpath/include/config.h.in index cdf45d9310b..c80ba1d4408 100644 --- a/libjava/classpath/include/config.h.in +++ b/libjava/classpath/include/config.h.in @@ -24,6 +24,9 @@ /* Define to 1 if you have BSD u_int32_t */ #undef HAVE_BSD_INT32_DEFINED +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + /* Define to 1 if you have the `close' function. */ #undef HAVE_CLOSE diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h index 160cb394f8f..05aeb5cfa08 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h @@ -19,6 +19,19 @@ JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_nativeGra JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative (JNIEnv *env, jobject, jobject, jint, jint, jint, jint, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_drawVolatile (JNIEnv *env, jobject, jobject, jlong, jint, jint, jint, jint, jint, jint, jint, jint); +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST 0L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR 1L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BICUBIC +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BICUBIC 5L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_SPEED +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_SPEED 2L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_QUALITY +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_QUALITY 3L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_DEFAULT +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_DEFAULT 4L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h index 8b1c26c290a..e31c80ee301 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h @@ -13,6 +13,19 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf (JNIEnv *env, jobject, jobject, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf (JNIEnv *env, jobject, jobject, jobject, jint, jint, jint, jint); +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST 0L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR 1L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BICUBIC +#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BICUBIC 5L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_SPEED +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_SPEED 2L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_QUALITY +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_QUALITY 3L +#undef gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_DEFAULT +#define gnu_java_awt_peer_gtk_CairoGraphics2D_ALPHA_INTERPOLATION_DEFAULT 4L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h index cb424f42673..b8c8a4f15a9 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h @@ -17,6 +17,17 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning JNIEXPORT jdoubleArray JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getMetricsNative (JNIEnv *env, jobject, jint, jlong); JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative (JNIEnv *env, jobject, jint, jlong); +#undef java_awt_font_GlyphVector_FLAG_COMPLEX_GLYPHS +#define java_awt_font_GlyphVector_FLAG_COMPLEX_GLYPHS 8L +#undef java_awt_font_GlyphVector_FLAG_HAS_POSITION_ADJUSTMENTS +#define java_awt_font_GlyphVector_FLAG_HAS_POSITION_ADJUSTMENTS 2L +#undef java_awt_font_GlyphVector_FLAG_HAS_TRANSFORMS +#define java_awt_font_GlyphVector_FLAG_HAS_TRANSFORMS 1L +#undef java_awt_font_GlyphVector_FLAG_MASK +#define java_awt_font_GlyphVector_FLAG_MASK 15L +#undef java_awt_font_GlyphVector_FLAG_RUN_RTL +#define java_awt_font_GlyphVector_FLAG_RUN_RTL 4L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h index 61999337b0b..2e76dfd0339 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h @@ -19,6 +19,13 @@ JNIEXPORT jobjectArray JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevic JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeSetDisplayMode (JNIEnv *env, jobject, jobject, jint, jshort); JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetBounds (JNIEnv *env, jobject); +#undef java_awt_GraphicsDevice_TYPE_RASTER_SCREEN +#define java_awt_GraphicsDevice_TYPE_RASTER_SCREEN 0L +#undef java_awt_GraphicsDevice_TYPE_PRINTER +#define java_awt_GraphicsDevice_TYPE_PRINTER 1L +#undef java_awt_GraphicsDevice_TYPE_IMAGE_BUFFER +#define java_awt_GraphicsDevice_TYPE_IMAGE_BUFFER 2L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h index 55891c86fd3..464656f4470 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h @@ -13,6 +13,23 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create (JNIEnv *env, jobject, jlong); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_construct (JNIEnv *env, jobject, jlong); +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL 0L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG 1L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_MENU +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_MENU 2L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_TOOLBAR +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_TOOLBAR 3L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_SPLASHSCREEN +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_SPLASHSCREEN 4L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_UTILITY +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_UTILITY 5L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DOCK +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DOCK 6L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DESKTOP +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DESKTOP 7L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h index f9e134168a6..ec7b4cb07e2 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h @@ -17,6 +17,23 @@ JNIEXPORT jstring JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeGet JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetDirectory (JNIEnv *env, jobject, jstring); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter (JNIEnv *env, jobject, jobject); +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL 0L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG 1L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_MENU +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_MENU 2L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_TOOLBAR +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_TOOLBAR 3L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_SPLASHSCREEN +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_SPLASHSCREEN 4L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_UTILITY +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_UTILITY 5L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DOCK +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DOCK 6L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DESKTOP +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DESKTOP 7L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h index f100d3d5581..067601984d8 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h @@ -22,6 +22,23 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_iconify (JNIEnv * JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_deiconify (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImage (JNIEnv *env, jobject, jobject); +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL 0L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG 1L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_MENU +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_MENU 2L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_TOOLBAR +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_TOOLBAR 3L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_SPLASHSCREEN +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_SPLASHSCREEN 4L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_UTILITY +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_UTILITY 5L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DOCK +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DOCK 6L +#undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DESKTOP +#define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DESKTOP 7L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h index 3e65ea9b2fb..29d7e4c69ea 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h @@ -20,6 +20,17 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkImage_freePixbuf (JNIEnv *e JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkImage_createScaledPixbuf (JNIEnv *env, jobject, jobject, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf (JNIEnv *env, jobject); +#undef java_awt_Image_SCALE_DEFAULT +#define java_awt_Image_SCALE_DEFAULT 1L +#undef java_awt_Image_SCALE_FAST +#define java_awt_Image_SCALE_FAST 2L +#undef java_awt_Image_SCALE_SMOOTH +#define java_awt_Image_SCALE_SMOOTH 4L +#undef java_awt_Image_SCALE_REPLICATE +#define java_awt_Image_SCALE_REPLICATE 8L +#undef java_awt_Image_SCALE_AREA_AVERAGING +#define java_awt_Image_SCALE_AREA_AVERAGING 16L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h index 57bac0d9f48..e56374374c3 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h +++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h @@ -16,6 +16,23 @@ JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGe JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeCopyArea (JNIEnv *env, jobject, jlong, jint, jint, jint, jint, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeDrawVolatile (JNIEnv *env, jobject, jlong, jlong, jint, jint, jint, jint); +#undef java_awt_image_VolatileImage_IMAGE_OK +#define java_awt_image_VolatileImage_IMAGE_OK 0L +#undef java_awt_image_VolatileImage_IMAGE_RESTORED +#define java_awt_image_VolatileImage_IMAGE_RESTORED 1L +#undef java_awt_image_VolatileImage_IMAGE_INCOMPATIBLE +#define java_awt_image_VolatileImage_IMAGE_INCOMPATIBLE 2L +#undef java_awt_Image_SCALE_DEFAULT +#define java_awt_Image_SCALE_DEFAULT 1L +#undef java_awt_Image_SCALE_FAST +#define java_awt_Image_SCALE_FAST 2L +#undef java_awt_Image_SCALE_SMOOTH +#define java_awt_Image_SCALE_SMOOTH 4L +#undef java_awt_Image_SCALE_REPLICATE +#define java_awt_Image_SCALE_REPLICATE 8L +#undef java_awt_Image_SCALE_AREA_AVERAGING +#define java_awt_Image_SCALE_AREA_AVERAGING 16L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h b/libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h index 73959ac626f..5336d386807 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h @@ -13,6 +13,13 @@ extern "C" JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_qt_MainQtThread_init (JNIEnv *env, jobject, jstring, jboolean); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_MainQtThread_exec (JNIEnv *env, jobject, jlong); +#undef java_lang_Thread_MIN_PRIORITY +#define java_lang_Thread_MIN_PRIORITY 1L +#undef java_lang_Thread_NORM_PRIORITY +#define java_lang_Thread_NORM_PRIORITY 5L +#undef java_lang_Thread_MAX_PRIORITY +#define java_lang_Thread_MAX_PRIORITY 10L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h index b5a3c7437ae..f0293f0609c 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h @@ -13,6 +13,9 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtButtonPeer_init (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtButtonPeer_setLabel (JNIEnv *env, jobject, jstring); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h index 74c86a89458..c1c80ecf5c1 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h @@ -12,6 +12,9 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtCanvasPeer_init (JNIEnv *env, jobject); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h index aaee33d4284..da460359955 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h @@ -14,6 +14,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtCheckboxPeer_init (JNIEnv *en JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtCheckboxPeer_setLabel (JNIEnv *env, jobject, jstring); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtCheckboxPeer_setState (JNIEnv *env, jobject, jboolean); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h index ef639faee2c..96e667f51db 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h @@ -15,6 +15,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtChoicePeer_add (JNIEnv *env, JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtChoicePeer_remove (JNIEnv *env, jobject, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtChoicePeer_select (JNIEnv *env, jobject, jint); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h index 0fd19f2aedd..56d6eaff193 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h @@ -15,6 +15,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtDialogPeer_setModal (JNIEnv * JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtDialogPeer_setBoundsNative (JNIEnv *env, jobject, jint, jint, jint, jint, jboolean); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtDialogPeer_setResizable (JNIEnv *env, jobject, jboolean); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h index 8913a3b38be..748f02dc044 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h @@ -13,6 +13,9 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtEmbeddedWindowPeer_init (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtEmbeddedWindowPeer_embed (JNIEnv *env, jobject, jlong); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h index f1e47368b1f..d8a67af9264 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h @@ -13,6 +13,9 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFileDialogPeer_init (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFileDialogPeer_setMode (JNIEnv *env, jobject, jint); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h index b07bc9cae70..542e7229841 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h @@ -23,6 +23,9 @@ JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getMaxAdvance (JN JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_charWidth (JNIEnv *env, jobject, jchar); JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_stringWidth (JNIEnv *env, jobject, jstring); +#undef java_awt_FontMetrics_serialVersionUID +#define java_awt_FontMetrics_serialVersionUID 1681126225205050147LL + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h index 06f1824a85e..f03c5cefca7 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h @@ -16,6 +16,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFramePeer_setMaximizedBounds JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFramePeer_setMenu (JNIEnv *env, jobject, jobject); JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFramePeer_menuBarHeight (JNIEnv *env, jobject); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h index cc399b7abad..9f994dfa375 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h @@ -24,6 +24,17 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtImage_drawPixelsTransformed ( JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtImage_drawPixelsScaledFlipped (JNIEnv *env, jobject, jobject, jint, jint, jint, jboolean, jboolean, jint, jint, jint, jint, jint, jint, jint, jint, jboolean); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtImage_copyArea (JNIEnv *env, jobject, jint, jint, jint, jint, jint, jint); +#undef java_awt_Image_SCALE_DEFAULT +#define java_awt_Image_SCALE_DEFAULT 1L +#undef java_awt_Image_SCALE_FAST +#define java_awt_Image_SCALE_FAST 2L +#undef java_awt_Image_SCALE_SMOOTH +#define java_awt_Image_SCALE_SMOOTH 4L +#undef java_awt_Image_SCALE_REPLICATE +#define java_awt_Image_SCALE_REPLICATE 8L +#undef java_awt_Image_SCALE_AREA_AVERAGING +#define java_awt_Image_SCALE_AREA_AVERAGING 16L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h index 67071424077..55e8e7b25d1 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h @@ -14,6 +14,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtLabelPeer_init (JNIEnv *env, JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtLabelPeer_setAlignment (JNIEnv *env, jobject, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtLabelPeer_setText (JNIEnv *env, jobject, jstring); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h index b08ebf9f18f..2392482c0d6 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h @@ -18,6 +18,9 @@ JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_qt_QtListPeer_getSelectedInde JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtListPeer_makeVisible (JNIEnv *env, jobject, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtListPeer_setMultipleMode (JNIEnv *env, jobject, jboolean); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h index 0b95a62b5fd..843373188f2 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h @@ -12,6 +12,9 @@ extern "C" JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtPanelPeer_init (JNIEnv *env, jobject); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h index a35627a6874..a91d1da9cb0 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h @@ -17,6 +17,13 @@ JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtScreenDevice_getDpiX (JNIEnv JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtScreenDevice_getDpiY (JNIEnv *env, jobject); JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtScreenDevice_depth (JNIEnv *env, jobject); +#undef java_awt_GraphicsDevice_TYPE_RASTER_SCREEN +#define java_awt_GraphicsDevice_TYPE_RASTER_SCREEN 0L +#undef java_awt_GraphicsDevice_TYPE_PRINTER +#define java_awt_GraphicsDevice_TYPE_PRINTER 1L +#undef java_awt_GraphicsDevice_TYPE_IMAGE_BUFFER +#define java_awt_GraphicsDevice_TYPE_IMAGE_BUFFER 2L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h index af9412eaf55..33bad2588bd 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h @@ -17,6 +17,9 @@ JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtScrollPanePeer_getHScrollbarH JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtScrollPanePeer_getVScrollbarWidth (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtScrollPanePeer_setScrollPosition (JNIEnv *env, jobject, jint, jint); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h index 8f3d08e8a97..947f2864e1b 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h @@ -16,6 +16,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtScrollbarPeer_setLineIncremen JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtScrollbarPeer_setPageIncrement (JNIEnv *env, jobject, jint); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtScrollbarPeer_setValues (JNIEnv *env, jobject, jint, jint, jint, jint); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h index 3c8334922c2..dbd0f1c3639 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h @@ -20,6 +20,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtTextAreaPeer_select (JNIEnv * JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtTextAreaPeer_setEditable (JNIEnv *env, jobject, jboolean); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtTextAreaPeer_setCaretPosition (JNIEnv *env, jobject, jint); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h index 621c7980777..3d14b2dae95 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h @@ -22,6 +22,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtTextFieldPeer_setEchoChar (JN JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtTextFieldPeer_setEditable (JNIEnv *env, jobject, jboolean); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtTextFieldPeer_setText (JNIEnv *env, jobject, jstring); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h index 94a3b5dab1d..93ce9d587e9 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h @@ -23,6 +23,23 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtVolatileImage_drawPixelsTrans JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtVolatileImage_drawPixelsScaledFlipped (JNIEnv *env, jobject, jobject, jint, jint, jint, jboolean, jboolean, jint, jint, jint, jint, jint, jint, jint, jint, jboolean); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtVolatileImage_copyArea (JNIEnv *env, jobject, jint, jint, jint, jint, jint, jint); +#undef java_awt_image_VolatileImage_IMAGE_OK +#define java_awt_image_VolatileImage_IMAGE_OK 0L +#undef java_awt_image_VolatileImage_IMAGE_RESTORED +#define java_awt_image_VolatileImage_IMAGE_RESTORED 1L +#undef java_awt_image_VolatileImage_IMAGE_INCOMPATIBLE +#define java_awt_image_VolatileImage_IMAGE_INCOMPATIBLE 2L +#undef java_awt_Image_SCALE_DEFAULT +#define java_awt_Image_SCALE_DEFAULT 1L +#undef java_awt_Image_SCALE_FAST +#define java_awt_Image_SCALE_FAST 2L +#undef java_awt_Image_SCALE_SMOOTH +#define java_awt_Image_SCALE_SMOOTH 4L +#undef java_awt_Image_SCALE_REPLICATE +#define java_awt_Image_SCALE_REPLICATE 8L +#undef java_awt_Image_SCALE_AREA_AVERAGING +#define java_awt_Image_SCALE_AREA_AVERAGING 16L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h index 64eb5a51eff..e7fd625687a 100644 --- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h +++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h @@ -15,6 +15,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtWindowPeer_toBack (JNIEnv *en JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtWindowPeer_toFront (JNIEnv *env, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtWindowPeer_setTitle (JNIEnv *env, jobject, jstring); +#undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER +#define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h b/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h index c708d75b731..3e8c97ca525 100644 --- a/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h +++ b/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h @@ -14,6 +14,15 @@ JNIEXPORT void JNICALL Java_gnu_java_nio_charset_iconv_IconvDecoder_openIconv (J JNIEXPORT jint JNICALL Java_gnu_java_nio_charset_iconv_IconvDecoder_decode (JNIEnv *env, jobject, jbyteArray, jcharArray, jint, jint, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_nio_charset_iconv_IconvDecoder_closeIconv (JNIEnv *env, jobject); +#undef java_nio_charset_CharsetDecoder_STATE_RESET +#define java_nio_charset_CharsetDecoder_STATE_RESET 0L +#undef java_nio_charset_CharsetDecoder_STATE_CODING +#define java_nio_charset_CharsetDecoder_STATE_CODING 1L +#undef java_nio_charset_CharsetDecoder_STATE_END +#define java_nio_charset_CharsetDecoder_STATE_END 2L +#undef java_nio_charset_CharsetDecoder_STATE_FLUSHED +#define java_nio_charset_CharsetDecoder_STATE_FLUSHED 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h b/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h index f460d0109a9..6d2e7895b33 100644 --- a/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h +++ b/libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h @@ -14,6 +14,15 @@ JNIEXPORT void JNICALL Java_gnu_java_nio_charset_iconv_IconvEncoder_openIconv (J JNIEXPORT jint JNICALL Java_gnu_java_nio_charset_iconv_IconvEncoder_encode (JNIEnv *env, jobject, jcharArray, jbyteArray, jint, jint, jint, jint); JNIEXPORT void JNICALL Java_gnu_java_nio_charset_iconv_IconvEncoder_closeIconv (JNIEnv *env, jobject); +#undef java_nio_charset_CharsetEncoder_STATE_RESET +#define java_nio_charset_CharsetEncoder_STATE_RESET 0L +#undef java_nio_charset_CharsetEncoder_STATE_CODING +#define java_nio_charset_CharsetEncoder_STATE_CODING 1L +#undef java_nio_charset_CharsetEncoder_STATE_END +#define java_nio_charset_CharsetEncoder_STATE_END 2L +#undef java_nio_charset_CharsetEncoder_STATE_FLUSHED +#define java_nio_charset_CharsetEncoder_STATE_FLUSHED 3L + #ifdef __cplusplus } #endif diff --git a/libjava/classpath/include/java_io_VMConsole.h b/libjava/classpath/include/java_io_VMConsole.h new file mode 100644 index 00000000000..857711b2b9f --- /dev/null +++ b/libjava/classpath/include/java_io_VMConsole.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#ifndef __java_io_VMConsole__ +#define __java_io_VMConsole__ + +#ifdef __cplusplus +extern "C" +{ +#endif + +JNIEXPORT jstring JNICALL Java_java_io_VMConsole_readPassword (JNIEnv *env, jclass, jobject); + +#ifdef __cplusplus +} +#endif + +#endif /* __java_io_VMConsole__ */ diff --git a/libjava/classpath/include/java_lang_VMSystem.h b/libjava/classpath/include/java_lang_VMSystem.h index 020cc30d452..adf5bf7be72 100644 --- a/libjava/classpath/include/java_lang_VMSystem.h +++ b/libjava/classpath/include/java_lang_VMSystem.h @@ -15,6 +15,7 @@ JNIEXPORT jint JNICALL Java_java_lang_VMSystem_identityHashCode (JNIEnv *env, jc JNIEXPORT void JNICALL Java_java_lang_VMSystem_setIn (JNIEnv *env, jclass, jobject); JNIEXPORT void JNICALL Java_java_lang_VMSystem_setOut (JNIEnv *env, jclass, jobject); JNIEXPORT void JNICALL Java_java_lang_VMSystem_setErr (JNIEnv *env, jclass, jobject); +JNIEXPORT jlong JNICALL Java_java_lang_VMSystem_currentTimeMillis (JNIEnv *env, jclass); JNIEXPORT jlong JNICALL Java_java_lang_VMSystem_nanoTime (JNIEnv *env, jclass); JNIEXPORT jobject JNICALL Java_java_lang_VMSystem_environ (JNIEnv *env, jclass); JNIEXPORT jstring JNICALL Java_java_lang_VMSystem_getenv (JNIEnv *env, jclass, jstring); diff --git a/libjava/classpath/install-sh b/libjava/classpath/install-sh index 3f83ce9b555..a9244eb0786 100755 --- a/libjava/classpath/install-sh +++ b/libjava/classpath/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2010-02-06.18; # UTC +scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -156,6 +156,10 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac shift;; -T) no_target_directory=true;; @@ -186,6 +190,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg + # Protect names problematic for `test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac done fi @@ -232,9 +240,9 @@ fi for src do - # Protect names starting with `-'. + # Protect names problematic for `test' and other utilities. case $src in - -*) src=./$src;; + -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then @@ -256,12 +264,7 @@ do echo "$0: no destination specified." >&2 exit 1 fi - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -389,7 +392,7 @@ do case $dstdir in /*) prefix='/';; - -*) prefix='./';; + [-=\(\)!]*) prefix='./';; *) prefix='';; esac @@ -407,7 +410,7 @@ do for d do - test -z "$d" && continue + test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then diff --git a/libjava/classpath/java/io/Console.java b/libjava/classpath/java/io/Console.java new file mode 100644 index 00000000000..5434b0267a9 --- /dev/null +++ b/libjava/classpath/java/io/Console.java @@ -0,0 +1,122 @@ +/* Console.java -- A character-based console device + Copyright (C) 2012 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.io; + +/** + * @since 1.6 + */ +public final class Console implements Flushable +{ + private static Console console = new Console(); + + public static Console console() + { + return console; + } + + private Console() + { + } + + public PrintWriter writer() + { + return new PrintWriter(new OutputStreamWriter(System.out)); + } + + public Reader reader() + { + return new InputStreamReader(System.in); + } + + public Console format(String fmt, Object... args) + { + System.out.printf(fmt, args); + + return this; + } + + public Console printf(String fmt, Object... args) + { + return format(fmt, args); + } + + public String readLine(String fmt, Object... args) + { + format(fmt, args); + return readLine(); + } + + public String readLine() + { + String result = null; + try + { + result = new BufferedReader(reader()).readLine(); + } + catch (IOException e) + { + throw new IOError(e); + } + return result; + } + + public char[] readPassword(String fmt, Object... args) + { + format(fmt, args); + return readPassword(); + } + + public char[] readPassword() + { + String s = VMConsole.readPassword(this); + + System.out.println(); + + if (s == null) + { + return null; + } + return s.toCharArray(); + } + + public void flush() throws IOException + { + System.out.flush(); + } +} diff --git a/libjava/classpath/java/io/File.java b/libjava/classpath/java/io/File.java index 4f670e147fe..080b52feb91 100644 --- a/libjava/classpath/java/io/File.java +++ b/libjava/classpath/java/io/File.java @@ -700,11 +700,13 @@ public class File implements Serializable, Comparable * * @return true if the file is hidden, false * otherwise. - * + * @throws SecurityException if a security manager exists and denies + * read access to this file. * @since 1.2 */ public boolean isHidden() { + checkRead(); return VMFile.isHidden(path); } diff --git a/libjava/classpath/java/io/IOError.java b/libjava/classpath/java/io/IOError.java new file mode 100644 index 00000000000..52acb38eb7b --- /dev/null +++ b/libjava/classpath/java/io/IOError.java @@ -0,0 +1,58 @@ +/* IOError.java -- Throw when unrecoverable I/O error happens. + Copyright (C) 2012 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.io; + +/** + * Throw when unrecoverable I/O error happens. + * + * @since 1.6 + */ +public class IOError extends Error +{ + private static final long serialVersionUID = 67100927991680413L; + + /** + * Create a new instance with a cause. + * @param cause the cause + */ + public IOError(Throwable cause) + { + super(cause); + } +} diff --git a/libjava/classpath/java/io/ObjectOutputStream.java b/libjava/classpath/java/io/ObjectOutputStream.java index 71d2e0b3439..8abf7f5d5d5 100644 --- a/libjava/classpath/java/io/ObjectOutputStream.java +++ b/libjava/classpath/java/io/ObjectOutputStream.java @@ -48,6 +48,8 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.security.AccessController; +import java.security.PrivilegedAction; /** * An ObjectOutputStream can be used to write objects @@ -136,6 +138,10 @@ public class ObjectOutputStream extends OutputStream */ public ObjectOutputStream (OutputStream out) throws IOException { + SecurityManager secMan = System.getSecurityManager(); + if (secMan != null && overridesMethods(getClass())) + secMan.checkPermission(SUBCLASS_IMPLEMENTATION_PERMISSION); + realOutput = new DataOutputStream(out); blockData = new byte[ BUFFER_SIZE ]; blockDataCount = 0; @@ -1487,4 +1493,44 @@ public class ObjectOutputStream extends OutputStream private boolean dump = false; private static final boolean DEBUG = false; + + /** + * Returns true if the given class overrides either of the + * methods putFields or writeUnshared. + * + * @param clazz the class to check. + * @return true if the class overrides one of the methods. + */ + private static boolean overridesMethods(final Class clazz) + { + if (clazz == ObjectOutputStream.class) + return false; + + return AccessController.doPrivileged(new PrivilegedAction() { + public Boolean run() + { + Method[] methods = clazz.getDeclaredMethods(); + for (int a = 0; a < methods.length; ++a) + { + String name = methods[a].getName(); + if (name.equals("writeUnshared")) + { + Class[] paramTypes = methods[a].getParameterTypes(); + if (paramTypes.length == 1 && + paramTypes[0] == Object.class && + methods[a].getReturnType() == Void.class) + return true; + } + else if (name.equals("putFields")) + { + if (methods[a].getParameterTypes().length == 0 && + methods[a].getReturnType() == PutField.class) + return true; + } + } + return false; + } + }); + } + } diff --git a/libjava/classpath/java/io/PrintStream.java b/libjava/classpath/java/io/PrintStream.java index eaab7c3d4b5..caa6035cfcd 100644 --- a/libjava/classpath/java/io/PrintStream.java +++ b/libjava/classpath/java/io/PrintStream.java @@ -181,10 +181,15 @@ public class PrintStream extends FilterOutputStream implements Appendable * @param out The OutputStream to write to. * @param auto_flush true to flush the stream after every * line, false otherwise + * @exception NullPointerException If out is null. */ public PrintStream (OutputStream out, boolean auto_flush) { super (out); + + if (out == null) + throw new NullPointerException("out is null"); + String encoding; try { encoding = SystemProperties.getProperty("file.encoding"); @@ -213,12 +218,19 @@ public class PrintStream extends FilterOutputStream implements Appendable * line, false otherwise * @param encoding The name of the character encoding to use for this * object. + * @exception NullPointerException If out or encoding is null. */ public PrintStream (OutputStream out, boolean auto_flush, String encoding) throws UnsupportedEncodingException { super (out); + if (out == null) + throw new NullPointerException("out is null"); + + if (encoding == null) + throw new NullPointerException("encoding is null"); + new String(new byte[]{0}, encoding); // check if encoding is supported this.encoding = encoding; this.auto_flush = auto_flush; diff --git a/libjava/classpath/java/lang/Class.java b/libjava/classpath/java/lang/Class.java index 1caee014736..af0a0a2a060 100644 --- a/libjava/classpath/java/lang/Class.java +++ b/libjava/classpath/java/lang/Class.java @@ -440,11 +440,14 @@ public final class Class * @return the field * @throws NoSuchFieldException if the field does not exist * @throws SecurityException if the security check fails + * @throws NullPointerException if fieldName is null * @see #getDeclaredFields() * @since 1.1 */ public Field getDeclaredField(String name) throws NoSuchFieldException { + if (name == null) + throw new NullPointerException(); memberAccessCheck(Member.DECLARED); Field[] fields = getDeclaredFields(false); for (int i = 0; i < fields.length; i++) @@ -496,12 +499,15 @@ public final class Class * @return the method * @throws NoSuchMethodException if the method does not exist * @throws SecurityException if the security check fails + * @throws NullPointerException if methodName is null * @see #getDeclaredMethods() * @since 1.1 */ public Method getDeclaredMethod(String methodName, Class... types) throws NoSuchMethodException { + if (methodName == null) + throw new NullPointerException(); memberAccessCheck(Member.DECLARED); Method match = matchMethod(getDeclaredMethods(false), methodName, types); if (match == null) @@ -560,12 +566,15 @@ public final class Class * @return the field * @throws NoSuchFieldException if the field does not exist * @throws SecurityException if the security check fails + * @throws NullPointerException if fieldName is null * @see #getFields() * @since 1.1 */ public Field getField(String fieldName) throws NoSuchFieldException { + if (fieldName == null) + throw new NullPointerException(); memberAccessCheck(Member.PUBLIC); Field field = internalGetField(fieldName); if (field == null) @@ -700,12 +709,15 @@ public final class Class * @return the method * @throws NoSuchMethodException if the method does not exist * @throws SecurityException if the security check fails + * @throws NullPointerException if methodName is null * @see #getMethods() * @since 1.1 */ public Method getMethod(String methodName, Class... types) throws NoSuchMethodException { + if (methodName == null) + throw new NullPointerException(); memberAccessCheck(Member.PUBLIC); Method method = internalGetMethod(methodName, types); if (method == null) diff --git a/libjava/classpath/java/lang/System.java b/libjava/classpath/java/lang/System.java index 39d6da22907..51b3259fa8b 100644 --- a/libjava/classpath/java/lang/System.java +++ b/libjava/classpath/java/lang/System.java @@ -1,5 +1,5 @@ /* System.java -- useful methods to interface with the system - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,6 +45,7 @@ import gnu.classpath.VMStackWalker; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; +import java.io.Console; import java.nio.channels.Channel; import java.nio.channels.spi.SelectorProvider; import java.util.AbstractCollection; @@ -703,6 +704,14 @@ public final class System return SelectorProvider.provider().inheritedChannel(); } + /* + * @since 1.6 + */ + public static Console console() + { + return Console.console(); + } + /** * This is a specialised Collection, providing * the necessary provisions for the collections used by the diff --git a/libjava/classpath/java/math/BigInteger.java b/libjava/classpath/java/math/BigInteger.java index 953e557a811..00f5c70adef 100644 --- a/libjava/classpath/java/math/BigInteger.java +++ b/libjava/classpath/java/math/BigInteger.java @@ -1,5 +1,6 @@ /* java.math.BigInteger -- Arbitary precision integers - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2010 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -64,7 +65,8 @@ import java.util.logging.Logger; */ public class BigInteger extends Number implements Comparable { - private static final Logger log = Logger.getLogger(BigInteger.class.getName()); + private static final Logger log = Configuration.DEBUG ? + Logger.getLogger(BigInteger.class.getName()) : null; /** All integers are stored in 2's-complement form. * If words == null, the ival is the value of this BigInteger. diff --git a/libjava/classpath/java/net/DatagramSocket.java b/libjava/classpath/java/net/DatagramSocket.java index 6ca9c42fea6..baa572ce39f 100644 --- a/libjava/classpath/java/net/DatagramSocket.java +++ b/libjava/classpath/java/net/DatagramSocket.java @@ -525,7 +525,27 @@ public class DatagramSocket SecurityManager sm = System.getSecurityManager(); if (sm != null) - sm.checkConnect(address.getHostAddress(), port); + { + if (address.isMulticastAddress()) + sm.checkMulticast(address); + else + { + sm.checkConnect(address.getHostAddress(), port); + sm.checkAccept(address.getHostAddress(), port); + } + } + + if (!isBound()) + { + try + { + bind(new InetSocketAddress(0)); + } + catch (SocketException e) + { + throw new Error("Binding socket failed.", e); + } + } try { diff --git a/libjava/classpath/java/net/Socket.java b/libjava/classpath/java/net/Socket.java index d61e81f5e42..32b12e8b1bf 100644 --- a/libjava/classpath/java/net/Socket.java +++ b/libjava/classpath/java/net/Socket.java @@ -428,7 +428,9 @@ public class Socket * @exception IllegalBlockingModeException If this socket has an associated * channel, and the channel is in non-blocking mode * @exception SocketTimeoutException If the timeout is reached - * + * @throws SecurityException if the SocketAddress is an {@link InetSocketAddress} + * and a security manager is present which does not + * allow connections on the given host and port. * @since 1.4 */ public void connect(SocketAddress endpoint, int timeout) @@ -440,6 +442,13 @@ public class Socket if (! (endpoint instanceof InetSocketAddress)) throw new IllegalArgumentException("unsupported address type"); + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + { + InetSocketAddress inetAddr = (InetSocketAddress) endpoint; + sm.checkConnect(inetAddr.getHostName(), inetAddr.getPort()); + } + // The Sun spec says that if we have an associated channel and // it is in non-blocking mode, we throw an IllegalBlockingModeException. // However, in our implementation if the channel itself initiated this diff --git a/libjava/classpath/java/nio/channels/spi/SelectorProvider.java b/libjava/classpath/java/nio/channels/spi/SelectorProvider.java index 821bc436152..18b9e83b650 100644 --- a/libjava/classpath/java/nio/channels/spi/SelectorProvider.java +++ b/libjava/classpath/java/nio/channels/spi/SelectorProvider.java @@ -46,6 +46,8 @@ import java.nio.channels.Pipe; import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; +import java.security.AccessController; +import java.security.PrivilegedAction; /** * @author Michael Koch @@ -145,14 +147,18 @@ public abstract class SelectorProvider * Returns the system-wide default selector provider for this invocation * of the Java virtual machine. * - * @return the default seletor provider + * @return the default selector provider */ public static synchronized SelectorProvider provider() { if (systemDefaultProvider == null) { - String propertyValue = - System.getProperty("java.nio.channels.spi.SelectorProvider"); + String propertyValue = AccessController.doPrivileged(new PrivilegedAction () { + public String run() + { + return System.getProperty("java.nio.channels.spi.SelectorProvider"); + } + }); if (propertyValue == null || propertyValue.equals("")) systemDefaultProvider = new SelectorProviderImpl(); diff --git a/libjava/classpath/java/security/KeyStore.java b/libjava/classpath/java/security/KeyStore.java index b7a0e2ab1f1..25173e54370 100644 --- a/libjava/classpath/java/security/KeyStore.java +++ b/libjava/classpath/java/security/KeyStore.java @@ -214,7 +214,12 @@ public class KeyStore { // Security reads every property in java.security so it // will return this property if it exists. - String tmp = Security.getProperty("keystore.type"); + String tmp = AccessController.doPrivileged(new PrivilegedAction () { + public String run() + { + return Security.getProperty("keystore.type"); + } + }); if (tmp == null) tmp = "gkr"; diff --git a/libjava/classpath/java/security/ProtectionDomain.java b/libjava/classpath/java/security/ProtectionDomain.java index d5d657d615f..7be5875dc72 100644 --- a/libjava/classpath/java/security/ProtectionDomain.java +++ b/libjava/classpath/java/security/ProtectionDomain.java @@ -41,6 +41,8 @@ import gnu.classpath.SystemProperties; import gnu.java.lang.CPStringBuilder; +import java.util.Enumeration; + /** * This class represents a group of classes, along with their granted * permissions. The classes are identified by a {@link CodeSource}. Thus, any @@ -71,6 +73,9 @@ public class ProtectionDomain /** Post 1.4 the policy may be refreshed! use false for pre 1.4. */ private boolean staticBinding; + /** True if this protection domain has all permissions */ + private boolean hasAllPermissions; + /** * Initializes a new instance of ProtectionDomain representing * the specified {@link CodeSource} and set of permissions. No permissions @@ -128,6 +133,13 @@ public class ProtectionDomain { perms = permissions; perms.setReadOnly(); + /* Check if this protection domain has all permissions */ + Enumeration e = permissions.elements(); + while (e.hasMoreElements()) + { + if (e.nextElement() instanceof AllPermission) + hasAllPermissions = true; + } } this.classloader = classloader; @@ -190,6 +202,8 @@ public class ProtectionDomain */ public boolean implies(Permission permission) { + if (hasAllPermissions) + return true; if (staticBinding) return (perms == null ? false : perms.implies(permission)); // Else dynamically bound. Do we have it? @@ -241,7 +255,15 @@ public class ProtectionDomain sb.append(linesep); if (!staticBinding) // include all but dont force loading Policy.currentPolicy if (Policy.isLoaded()) - sb.append(Policy.getCurrentPolicy().getPermissions(this)); + try + { + sb.append(Policy.getPolicy().getPermissions(this)); + } + catch (SecurityException e) + { + // We are not allowed access to the policy. + sb.append(perms); + } else // fallback on this one's permissions sb.append(perms); else diff --git a/libjava/classpath/java/text/DateFormatSymbols.java b/libjava/classpath/java/text/DateFormatSymbols.java index c22dd38f765..53e7ba07c8c 100644 --- a/libjava/classpath/java/text/DateFormatSymbols.java +++ b/libjava/classpath/java/text/DateFormatSymbols.java @@ -45,6 +45,7 @@ import java.io.IOException; import java.text.spi.DateFormatSymbolsProvider; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Locale; @@ -125,9 +126,58 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable transient String[] dateFormats; transient String[] timeFormats; - private static String[] getStringArray(ResourceBundle res, String name) + /** + * Compiles a string array for a property using data from each of the locales in the + * hierarchy as necessary. + * + * @param bundles the locale hierarchy, starting with the most specific. + * @param name the name of the property. + * @param size the size the array should be when complete. + * @return a completed string array. + */ + private static String[] getStringArray(List bundles, String name, int size) + { + return getStringArray(bundles, name, size, null); + } + + /** + * Compiles a string array for a property using data from each of the locales in the + * hierarchy as necessary. If non-null, the fallback array is also used for "sideways" + * inheritance (e.g. if there is no short name for a month, the long name is used rather + * than the empty string). + * + * @param bundles the locale hierarchy, starting with the most specific. + * @param name the name of the property. + * @param size the size the array should be when complete. + * @param fallback an array of long name fallback strings for data with both long and short names. + * @return a completed string array. + */ + private static String[] getStringArray(List bundles, String name, int size, + String[] fallback) { - return res.getString(name).split("\u00ae"); + String[] data = new String[size]; + Arrays.fill(data, ""); + // Populate array with data from each locale back to the root, starting with the most specific + for (int a = 0; a < bundles.size(); ++a) + { + String localeData = bundles.get(a).getString(name); + String[] array = localeData.split("\u00ae", size); + for (int b = 0; b < data.length; ++b) + { + if (array.length > b && array[b] != null && data[b].isEmpty() && !array[b].isEmpty()) + data[b] = array[b]; + } + } + // Replace any remaining empty strings with data from the fallback array, if non-null + if (fallback != null && fallback.length == size) + { + for (int a = 0; a < data.length; ++a) + { + if (data[a].isEmpty() && fallback[a] != null && !fallback[a].isEmpty()) + data[a] = fallback[a]; + } + } + return data; } private String[][] getZoneStrings(ResourceBundle res, Locale locale) @@ -264,17 +314,26 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable public DateFormatSymbols (Locale locale) throws MissingResourceException { + ClassLoader ldr = ClassLoader.getSystemClassLoader(); + List bundles = new ArrayList(); ResourceBundle res - = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", locale, - ClassLoader.getSystemClassLoader()); - - ampms = getStringArray(res, "ampms"); - eras = getStringArray(res, "eras"); + = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", locale, ldr); + bundles.add(res); + Locale resLocale = res.getLocale(); + while (resLocale != Locale.ROOT) + { + res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", + LocaleHelper.getFallbackLocale(resLocale), ldr); + bundles.add(res); + resLocale = res.getLocale(); + } + ampms = getStringArray(bundles, "ampms", 2); + eras = getStringArray(bundles, "eras", 2); localPatternChars = res.getString("localPatternChars"); - months = getStringArray(res, "months"); - shortMonths = getStringArray(res, "shortMonths"); - shortWeekdays = getStringArray(res, "shortWeekdays"); - weekdays = getStringArray(res, "weekdays"); + months = getStringArray(bundles, "months", 13); + shortMonths = getStringArray(bundles, "shortMonths", 13, months); + weekdays = getStringArray(bundles, "weekdays", 8); + shortWeekdays = getStringArray(bundles, "shortWeekdays", 8, weekdays); dateFormats = formatsForKey(res, "DateFormat"); timeFormats = formatsForKey(res, "TimeFormat"); runtimeZoneStrings = getZoneStrings(res, locale); diff --git a/libjava/classpath/java/util/Formatter.java b/libjava/classpath/java/util/Formatter.java index 04ae8058dcf..62f68456239 100644 --- a/libjava/classpath/java/util/Formatter.java +++ b/libjava/classpath/java/util/Formatter.java @@ -1188,7 +1188,7 @@ public final class Formatter advance(); if (start == index) return -1; - return Integer.decode(format.substring(start, index)); + return Integer.parseInt(format.substring(start, index)); } /** diff --git a/libjava/classpath/java/util/HashMap.java b/libjava/classpath/java/util/HashMap.java index 55d81c620b1..f5194a24061 100644 --- a/libjava/classpath/java/util/HashMap.java +++ b/libjava/classpath/java/util/HashMap.java @@ -100,11 +100,10 @@ public class HashMap extends AbstractMap implements Map, Cloneable, Serializable { /** - * Default number of buckets. This is the value the JDK 1.3 uses. Some - * early documentation specified this value as 101. That is incorrect. + * Default number of buckets; this is currently set to 16. * Package visible for use by HashSet. */ - static final int DEFAULT_CAPACITY = 11; + static final int DEFAULT_CAPACITY = 16; /** * The default load factor; this is explicitly specified by the spec. @@ -344,9 +343,12 @@ public class HashMap extends AbstractMap int idx = hash(key); HashEntry e = buckets[idx]; + int hash1 = key == null ? 0 : key.hashCode(); while (e != null) { - if (equals(key, e.key)) + int hash2 = e.key == null ? 0 : e.key.hashCode(); + + if ((hash1 == hash2) && equals(key, e.key)) { e.access(); // Must call this for bookkeeping in LinkedHashMap. V r = e.value; diff --git a/libjava/classpath/java/util/logging/LogManager.java b/libjava/classpath/java/util/logging/LogManager.java index dffa44d9cf0..f8c6c3393fc 100644 --- a/libjava/classpath/java/util/logging/LogManager.java +++ b/libjava/classpath/java/util/logging/LogManager.java @@ -211,11 +211,21 @@ public class LogManager /** * Registers a listener which will be notified when the * logging properties are re-read. + * + * @param listener the event listener to register. + * @throws NullPointerException if the listener is {@code null}. + * @throws SecurityException if a security manager exists and the + * calling code does not have the permission + * {@code LoggingPermission("control")}. */ public synchronized void addPropertyChangeListener(PropertyChangeListener listener) { - /* do not register null. */ - listener.getClass(); + if (listener == null) + throw new NullPointerException("Attempt to add null property change listener"); + + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new LoggingPermission("control", null)); pcs.addPropertyChangeListener(listener); } @@ -226,11 +236,22 @@ public class LogManager * If listener has not been registered previously, * nothing happens. Also, no exception is thrown if * listener is null. + * + * @param listener the listener to remove. + * @throws SecurityException if a security manager exists and the + * calling code does not have the permission + * {@code LoggingPermission("control")}. */ public synchronized void removePropertyChangeListener(PropertyChangeListener listener) { if (listener != null) - pcs.removePropertyChangeListener(listener); + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkPermission(new LoggingPermission("control", null)); + + pcs.removePropertyChangeListener(listener); + } } /** diff --git a/libjava/classpath/java/util/regex/Matcher.java b/libjava/classpath/java/util/regex/Matcher.java index be57471de61..8d033d5e316 100644 --- a/libjava/classpath/java/util/regex/Matcher.java +++ b/libjava/classpath/java/util/regex/Matcher.java @@ -169,6 +169,12 @@ public final class Matcher implements MatchResult if (match != null) { int endIndex = match.getEndIndex(); + // Is the match within input limits? + if (endIndex > input.length()) + { + match = null; + return false; + } // Are we stuck at the same position? if (!first && endIndex == position) { @@ -608,4 +614,27 @@ public final class Matcher implements MatchResult return snapshot; } + /** + * Returns a literalized string of s where characters {@code $} and {@code + * \\} are escaped. + * + * @param s the string to literalize. + * @return the literalized string. + * @since 1.5 + */ + public static String quoteReplacement(String s) + { + if (s == null) + throw new NullPointerException(); + CPStringBuilder sb = new CPStringBuilder(); + for (int i = 0; i < s.length(); i++) + { + char ch = s.charAt(i); + if (ch == '$' || ch == '\\') + sb.append('\\'); + sb.append(ch); + } + return sb.toString(); + } + } diff --git a/libjava/classpath/java/util/regex/Pattern.java b/libjava/classpath/java/util/regex/Pattern.java index 7d1fc84b4e6..b1c937f7815 100644 --- a/libjava/classpath/java/util/regex/Pattern.java +++ b/libjava/classpath/java/util/regex/Pattern.java @@ -1,5 +1,6 @@ /* Pattern.java -- Compiled regular expression ready to be applied. - Copyright (C) 2002, 2004, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2005, 2007, 2010 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,6 +38,8 @@ exception statement from your version. */ package java.util.regex; +import gnu.java.lang.CPStringBuilder; + import gnu.java.util.regex.RE; import gnu.java.util.regex.REException; import gnu.java.util.regex.RESyntax; @@ -259,6 +262,41 @@ public final class Pattern implements Serializable return regex; } + /** + * Returns a literal pattern for the specified String. + * + * @param String to return a literal pattern for. + * @return a literal pattern for the specified String. + * @exception NullPointerException if str is null. + * @since 1.5 + */ + public static String quote(String str) + { + int eInd = str.indexOf("\\E"); + if (eInd < 0) + { + // No need to handle backslashes. + return "\\Q" + str + "\\E"; + } + + CPStringBuilder sb = new CPStringBuilder(str.length() + 16); + sb.append("\\Q"); // start quote + + int pos = 0; + do + { + // A backslash is quoted by another backslash; + // 'E' is not needed to be quoted. + sb.append(str.substring(pos, eInd)) + .append("\\E" + "\\\\" + "E" + "\\Q"); + pos = eInd + 2; + } while ((eInd = str.indexOf("\\E", pos)) >= 0); + + sb.append(str.substring(pos, str.length())) + .append("\\E"); // end quote + return sb.toString(); + } + /** * Return the regular expression used to construct this object. * @specnote Prior to JDK 1.5 this method had a different behavior diff --git a/libjava/classpath/java/util/zip/InflaterHuffmanTree.java b/libjava/classpath/java/util/zip/InflaterHuffmanTree.java index c12c732e0c7..1a152d2b29b 100644 --- a/libjava/classpath/java/util/zip/InflaterHuffmanTree.java +++ b/libjava/classpath/java/util/zip/InflaterHuffmanTree.java @@ -95,11 +95,14 @@ class InflaterHuffmanTree blCount[bits]++; } + int max = 0; int code = 0; int treeSize = 512; for (int bits = 1; bits <= MAX_BITLEN; bits++) { nextCode[bits] = code; + if (blCount[bits] > 0) + max = bits; code += blCount[bits] << (16 - bits); if (bits >= 10) { @@ -109,8 +112,8 @@ class InflaterHuffmanTree treeSize += (end - start) >> (16 - bits); } } - if (code != 65536) - throw new DataFormatException("Code lengths don't add up properly."); + if (code != 65536 && max > 1) + throw new DataFormatException("incomplete dynamic bit lengths tree"); /* Now create and fill the extra tables from longest to shortest * bit len. This way the sub trees will be aligned. diff --git a/libjava/classpath/java/util/zip/ZipFile.java b/libjava/classpath/java/util/zip/ZipFile.java index 3963bcb1eb5..b582c84939c 100644 --- a/libjava/classpath/java/util/zip/ZipFile.java +++ b/libjava/classpath/java/util/zip/ZipFile.java @@ -261,7 +261,10 @@ public class ZipFile implements ZipConstants if (inp.readLeInt() != CENSIG) throw new ZipException("Wrong Central Directory signature: " + name); - inp.skip(6); + inp.skip(4); + int flags = inp.readLeShort(); + if ((flags & 1) != 0) + throw new ZipException("invalid CEN header (encrypted entry)"); int method = inp.readLeShort(); int dostime = inp.readLeInt(); int crc = inp.readLeInt(); diff --git a/libjava/classpath/javax/swing/text/html/StyleSheet.java b/libjava/classpath/javax/swing/text/html/StyleSheet.java index 5cf015bc520..31879b2b2dc 100644 --- a/libjava/classpath/javax/swing/text/html/StyleSheet.java +++ b/libjava/classpath/javax/swing/text/html/StyleSheet.java @@ -414,11 +414,12 @@ public class StyleSheet extends StyleContext tags[i] = t.toString(); else tags[i] = null; - attributes.set(i, attributeSetToMap(atts)); + attributes.add(attributeSetToMap(atts)); } else { tags[i] = null; + attributes.add(null); } } tags[0] = tag.toString(); diff --git a/libjava/classpath/lib/Makefile.am b/libjava/classpath/lib/Makefile.am index 5491a99de00..2d47009f459 100644 --- a/libjava/classpath/lib/Makefile.am +++ b/libjava/classpath/lib/Makefile.am @@ -74,7 +74,7 @@ glibj.zip: else if WITH_JAR -CREATE_GLIBJ_ZIP=$(JAR) cf glibj.zip gnu java javax org sun META-INF +CREATE_GLIBJ_ZIP=$(JAR) cf glibj.zip gnu java javax org sun META-INF && $(JAR) i glibj.zip else CREATE_GLIBJ_ZIP=$(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null endif diff --git a/libjava/classpath/lib/Makefile.in b/libjava/classpath/lib/Makefile.in index ccfd8a1e505..384e77294ec 100644 --- a/libjava/classpath/lib/Makefile.in +++ b/libjava/classpath/lib/Makefile.in @@ -296,7 +296,7 @@ compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$ @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 +@USE_PREBUILT_GLIBJ_ZIP_FALSE@@WITH_JAR_TRUE@CREATE_GLIBJ_ZIP = $(JAR) cf glibj.zip gnu java javax org sun META-INF && $(JAR) i glibj.zip # endif EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh glibj.zip CLEANFILES = compile-classes resources classes \ diff --git a/libjava/classpath/lib/gnu/classpath/Configuration.class b/libjava/classpath/lib/gnu/classpath/Configuration.class index 27c31f26e17ee33ae6db0183ed3c2348c5e51894..1f5a250215059a66c4f68d246c9f53d276e82e1a 100644 GIT binary patch delta 12 TcmeBR?_i%Wh0${3)Xz)+9AX5x delta 12 TcmeBR?_i%Wh0$W;)Xz)+99;yr diff --git a/libjava/classpath/lib/gnu/classpath/SystemProperties.class b/libjava/classpath/lib/gnu/classpath/SystemProperties.class index b0359303db5d22b4f5e2ad3084d63007ae98126e..0bb632e5ee2801bda56428dba685df94b0faff55 100644 GIT binary patch delta 14 VcmcaFa$jVF0VAX3Wt~1RekY delta 14 VcmcaFa$jVF0VAWuWt^1RVeX diff --git a/libjava/classpath/lib/gnu/gcj/convert/Convert.class b/libjava/classpath/lib/gnu/gcj/convert/Convert.class index 2144fc8d8470731e69b554032b2bb40607a495e9..7d7bd9c80f79158cb63423e2d7e729edbefecc50 100644 GIT binary patch delta 14 Vcmdn5x?goe1S_M_=1A5wUH~Wx1dRXy delta 14 Vcmdn5x?goe1S_M#=1A5wUH~Wl1d9Lw diff --git a/libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class b/libjava/classpath/lib/gnu/gcj/tools/gcj_dbtool/Main.class index 728256d00089a0f47a72262bcd13a265610379e8..d3b6b2a046ab495e8b4ce5bfa170a39bb9abaaa0 100644 GIT binary patch delta 14 VcmZ1$x-4`<5i_IF=3-`JbpR^x1kwNi delta 14 VcmZ1$x-4`<5i_H~=3-`JbpR^l1keBg diff --git a/libjava/classpath/lib/gnu/java/beans/editors/ColorEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/ColorEditor.class index 5d010e752bb8a8c828d25d26cfaa32f85580ef62..ace906317905bd956ce0905193fd8332b3098b57 100644 GIT binary patch delta 36 qcmX>tcv^77RyJ`K22%zeAeLh=V=!beXK-V%V2Ea5-F$}aKO+E?NC(sa delta 36 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 literal 5002 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 diff --git a/libjava/classpath/lib/gnu/java/security/der/DERWriter.class b/libjava/classpath/lib/gnu/java/security/der/DERWriter.class index 4a09d076b90fe2fbcd506dab54a6fc6781d3a7f3..1bcef86588cb7761efb50c66dcfceec50113e056 100644 GIT binary patch delta 570 zcmYk1J!n%=6vuxj@5O|dmo^P18De6!*hox_)mEYr9SWtQsY4X3E<)>4Q$adNOlSi- zh*RNFr!HoRgM(6h6$|3*tT>2TZH=Gx`}?EuhAg?4dpW=J|DSu#t)*5{#=X_scYq#o z-Y|+rr$L@4CNBCKQLmuoPo5TJM4f&Y%hpw6{Xk7)9UsBN+R0hmz@Z->zhj!9o6+tXj*Sp}DkKaZiPDstq%7n+JOq$Pb6Z`nePHJkDx+ ztDKETY##2^19}JL3cf@ms88BFt#VYwZYp#oI=CCqeQQd-eUoJ+DK0B+LX~Zb7ZsZ& zUwfe3k5!GMT3=B@?f;%l}- KL{qIDqW=d1#*#Gv delta 557 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 C(jnad literal 10870 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 diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/EncodedKeyFactory.class b/libjava/classpath/lib/gnu/java/security/jce/sig/EncodedKeyFactory.class index 9bf4ba4bccd0e9d9828ddc5ed3386d0b4958675a..7835ae5412df902a245e9bd4849cb158069b840c 100644 GIT binary patch literal 9224 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 literal 9348 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 diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/SignatureAdapter.class b/libjava/classpath/lib/gnu/java/security/jce/sig/SignatureAdapter.class index 299c7bfd0e9cc19a89085a88c18a635803bd0c61..13ffe6f98585d3dd750d0dee45db83a8ea0a91c9 100644 GIT binary patch literal 4716 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 delta 3358 zcmZuz3w)E+75|^+OTIMyQj!m7NqLob`lY2ji?mYPLV^AWEiWr+0SypJv9v%_Mj1As zGKNz(_=L$D?m+Z5TR(``=YrbAJjFl9{Lxk(`Ik>4-(o_o)^=brOF zkNdql`m=n?#jj4C0Wg#%9=CW50SoR$p^PzvPK&(Dy}5PX`kLIab>7BC1^1zdAlLZ( z<=(|ULKkP2J0UaOzpS>troe&{jFT~z&@IYq^4Heo)-}}BFf-T9vu~M#Qj8}gv!d7r zVX!l4;%gD_En46~7K7r!J6+$fhZS#L2o3>BE7Z#8H%O+Rnwo9t20 z9|L4m>(>oVnyovewPrUSRPYeI`T?mw&C@SQIpouCNo$oV)Ck5xLaB43ZJbqHwMfB0 z3^Jomf6I8D>h(RQ99p8kV(Lg{XPkoL5AKqUM9cO4<{VlPykeHgwo*YB1_`@XDR=}e z`qkutv|6`YhID;gTrpax{*Hod(3-D1$SrOx&3cIop{1{Lqb z9%03Egsykc|0ejAGWPw)9VHD7bv|!>GWOztf`d4uUrOnnu@^5W_z?~fjN^;l(@QO= z!Vv{O#!+2T297_jUNZ7Zh~hW&J}%>vNINIcILIKXY-z{HD65#>_fj zeT{#ikotv?`lX&{9hP@Rb0_ zSnpfmpUKw~6e3E}AM7;MND^V-23yZ=Q<~=1)y|vbYqpSqOnfKFgjvqAjkXefw=vC} zRVh<4VGzr9owBTUx!3QD3Y*C!lfr4BuTJfnYM~TL6^Am065@-TD;Vcus>XNdo>N4S$Q=u%<^snus)7+G;P!4IFzTWxslbM;T&=9>`&FOWS zMk|z$H@JrgK!iDs3=`d}&=@Mzx2PkNi)ge=#f0wqF|~VV4%6JG1q--9sEEcXR7!`!A)TZ&%?PdjKVe)U^~WO2Y2&r0dCei zF&Vos6}vGVdvHI~Gg)vBtC`F7w*dRF5C^b`>BU_1D{u&_@H|?$=2tWQ7|X54VLXK+ z*uYh<<2YY+1ka+CPXzhI36_qqbdb4+d3BPDu>_As%?*H)n;RjI`B9sbm;yR!5j>_* z2y4Z#F5#LAiP<%Q`C3Z~C4&&JnwreM_-Bz?@E7ApJ zPhu3UQA%R$tnJw8QBxz>eb%Mg<68EX=X5}B#s122m)hmdX1?T*I$&WSs16c;AL^MJ|ew;pf)bv3Z|m+Q7U#| zgVu_rcLkV=3osQESi%C$cLkV=3osQEsBlPk?(8RgY{xl|`jZHLCJYGUd_etq7?;BM zm2h2z@t7DwVqk;S|Ju=9YI@w^%N%x>+B3e|oNv+`CPqs-2(!Z!Mf{4b%V~4ItU2Te zexr%HlLYxYJ9dTfdjtPNc>5a#agp07@E4BsU(pNi^9Rlc7>^Gz4IiPB+i(>=K@F~> z4xeHvcjOk_@hT_Mn?!hzlJGGZxT70!n@nWnKHG`Rq>^Za zDcsz+Q3c3K!+E=qY*a#an#Sx0c&_609O_E*D2*0UIxXS0*+ji)B{#|d^`)n&KW(D{ zw4c?y!1EDuQjnYCN$!M~$rUY}X|c47rz|HZ-od+^v;QX@GuTy1~j}+Huk>^lgJM7>QJ7UCpnJSY{pAwZ7120x5Jd~wiRio&68b*Y=i4e8+C8R zOv7LvBrzDpU=o8oINQ)hee~NIGXo-tB~D@iN0#UByP#;1JTZD z#&L%7Dtl$cVFvUn`#utnGpqyH_X5tK5xgg%kYD4G$mAR;W^D7AGVz1bgVDC|UXu87 ziXnq)UL`Ry-PxP97mz9@SD5ZOh!ibC1x(%-ZSR5T(-rOSw3Gw73@Z6Ks7+Bb(_%XA zBs{uvOof$6;=PaGRLU}<(|6`8)^)(5wb599Jj5!2S1P*!YUT@8B9&G}l}8@{6`kYS LiSvUW3Yze5I&&R% diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKeyPairPKCS8Codec.class index 6532a20ee749bf492dc8d54bd5278d81bbb47698..21fae7d0bd0b88a58aad5bd025753843dadf58b5 100644 GIT binary patch literal 4983 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 G>VE-Tfei8h literal 5128 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 Xqa0T`g7YzRTX6CRp+Blk=&k<(j-f{C diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairGenerator.class b/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairGenerator.class index e09c4234183331b0beda83a92005aa1211212b75..a083d5717cbd0707b3581fe8a630d1e280c0db6a 100644 GIT binary patch delta 1894 zcmZuxYj9Il5dLm*lY4V}plxUhA)^HcY@4JlMII7VpinT-VxdxPi$I_u1kzC2+d@$Y zAR@lSt764!d09Y2XlVizY30!>^3c(7WQ5Vt@sEx;=s3eK>YkfOl`%89XLrx;x4Ylj za}Et_&QQ+ZI&lg>J}w_o78tA+2yik;kS%Z{S3-`KVH}p0Ya$>1Gbm)fk6{ePYNbY} zFkV}4oRIYZg9n*$9{~afnanT@3YQ8PhT|SCP1C+N7HZoJgN-s~YMJ6l$83~HctpT} z<-P`AUcDL&dz`>0R z7#3oYmTt<=Su7w`M+^DFfjnvzEHhiLO@eZnIo4X$m?G& zz?N0iA6lx`2E&1g*=4-+kk)P5FT1gtVGSC!Rpt?-Jjw7B)@jY=$t4kn4cI6kIqYAf z&h>?>R#q1@s{T3wrmV_>>@rT<(>%*&0p=|4Kc+1V&!Uk`b$+!VsB*987@o%qT8`wT z3@Q@ylY;%L>U|+fWz%ZJG;ampdyAoo`^wez zAvIVNYUIWp4DWCTEQ^C`kv|+zmvQU64DWGQrFvzRH{9T_ts`c366M=chH5rBRc^s< zUils^R~{?APxC<=cg+ab&n=x&QX6dWss34h!rzO1+-<*r`C7i5t6h*si68Ky=9q1C zatH7s-#(;eSgzb%if)EaIAIn}m`;^KG@oHOi*s7KGS=LSZV8`ibChhk7oRg+Ap0ie zhIbka`Xr_a?Z|F}s~vf17)MF1F@DM)?r8jh7ky0MRU0~Wlc`F_+~qEdSOWw(F!RiiY46fC@RUY3j;c_wA`8;!?G?{#5&|Z zA(D7IU`0O*9_k%5YsuIS2hCLmb|8~RX*62!5Oxx^yHSBXsG@W=*oQ{!C!Y4vjX0>c zJ4Qc@jR~fxH&i1`{W=g?ij@>%AQ&rFp_ZDjK`QEWNq~y_1TEL;Ng6;b%e)P7ktsCJ z)P`|3lUNl+gU77PB()(ginSieW=fG3rO2U^vPX8>wiDN}_nNsqZTn<(L%3t2&t0)OY&-5Q<$y{Px*I?%TYimcDE5MEuw8 zJL1o{;$^wx3x#BL^$;?kk)VhpXGq)r?tw=4Ff z7!G=vo%K)FOyUmsm}dMG&3zZ{rI8tpGjtEm(omkG=dysz{}#bI z=&aN62ab|%rc!=H2T2kY^bMkjL8i0?I7T)L<&BKQahxFKCQ{IelSrZ>jMU31FiJyD zYW)0BNgBWR4&rD^4+iqZ6-8GolAJM|Cb6e~Uak5K`h~LoO4R&@p}4O1l^%z6jOVlIFI2xy$M|Fr+gq43F=b9pL93=`q!l%bo)KHNFD}U F`Ww+Gn2P`a delta 2038 zcmZuyZBSHY6n1mvr8{8oT->eBjT)`Oj&vCghS-I!CRdin<*m+|;&J(W92v-DkgMJP5^bp= zC7|LC2Bb-6Jr_7u zd1f$-=a8Y8kqf7ci3~$^0PQbh>@6H-sKUl+q$0#GN+r9yIVR&CZD*97P0{+ICZ^uU zF%4tFHVjO76mg6Q`<8Hw#BD-XsyPi)4GJF8S`DLY<(MO5Hbcx{dBv`Jjz{sB)@R6O zk89D=aOTn+Ql?UY`5cvSYc6S6Ts6mV*i=-YhGQX~&|0MIj9P~H!O9E0em4=M!h<@F zdbk;s8n3_1zj#X&UVoj4vU*vcRFH>v1?j`=2E^lRBZGN-g?PD;e&dEFUMjVX9)C@}r&(BR<>(Ogo9ET|i`?F7{{o@i&hfr5Rcq@i3%yP5 z1|RYA0YloFxD;)b9Ix!aPLb+ITDv?>+Rb1WFaDG*$}V(?7kjiA#l?bJosyz-qerOr zYHO6fTj$~g$CrW!v*1BzKqV?qaeRfZwHEU@^BJ6wahAcRwV7=RRQbHdsw&Z~GdR!j zEm>VNUkMZ-N*_6!g$0q;gRCx$>%@dEiU9uB)QnUWJ_EVnx>mcU*- z5`|ANmojr$5+k>Y;`F0PvZn_zuNzh3TtMk}V5Gwm8!_>e*fWm794}Gd<%}S_!f+3& zNU<3)y;xLki4DPb&|yjbkB2M`*f$Xifk^63svTI1SgeB$>uL2i5Sts3gEmZ};VUK7 z+1Ntcxs?{JgLvA8r|DdV9eTNAbrzRL%BAA4glwq!sKS$YilR)S?ky!B1Nq0}8C{|Y z4`7-0BTooaNfk!Vcw;B>6OB@35X+q=T_&j$c|ojn%8AA}xgt*S>{pzM-KvD}LN9X5 zB_X|H2;#LOht(8>wz2KyRT@(jHz>G`x|@Wnl!6KqrScO^tV;hUIXF*1hoDf{d`e8Ef0D}>Md=+O z`8wiAe+#xTH}O)HNHR=QRw>{LQBmM diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.class b/libjava/classpath/lib/gnu/java/security/key/rsa/RSAKeyPairPKCS8Codec.class index b8a5f4cf43152639b409d11d9214a6de5629d09e..c568935264b5040e8ba79ac4419140b7274f3c3e 100644 GIT binary patch literal 6116 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 b5x(q*kpFdjFG2rr7C}3436`hq@jv`OZ-9`r literal 4663 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 g8M}#4$bC2cN%#?&_z>% diff --git a/libjava/classpath/lib/gnu/java/security/pkcs/PKCS7SignedData.class b/libjava/classpath/lib/gnu/java/security/pkcs/PKCS7SignedData.class index 5ec095a4325c18c76402404ed3d9695d875ffa8c..8fff8d58c87055b80cfbf7e4b325b2829a9e6010 100644 GIT binary patch literal 8038 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 VuI0)HOccwxmdDUvp|ZJL`oFZzh(Z7W diff --git a/libjava/classpath/lib/gnu/java/security/pkcs/SignerInfo.class b/libjava/classpath/lib/gnu/java/security/pkcs/SignerInfo.class index 604a73552392e274d2e401df175ae6d4a50b5f90..95988e09547bfbb8c5a2fb723f9846f4c5f75891 100644 GIT binary patch literal 6148 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

>?mg$fXFuo7 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 GFaHlKRkpMFkMl|RHU5Ri<4JO*d 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 diff --git a/libjava/classpath/lib/gnu/java/security/sig/rsa/EMSA_PSS.class b/libjava/classpath/lib/gnu/java/security/sig/rsa/EMSA_PSS.class index 5484fd578c5e71f6956a29c8988d3c297abda947..af00a1bbc30df9e72379f0394aefdbc3325818ab 100644 GIT binary patch literal 3589 zcma)9ZEREL6@E_cwePj#q=sUGAz4FLMx2kPlwwNwXbBK-n?Tp3fe=P>@x3?(e^A?@ zq+_6V*&>zo12Ik8)Q)AUnrTB5-9{mWhHCulr2W~t9~;u9X$SgI_*U-IZ{ZMM%#<&RC}T5 zv~TO_-TdrRy}cGpL0Ip}IJs2&t^WXXbGaPORSOD3Q5oC6t8U}W+s!P0K694VzU z?G&WaJlf6CE36lo!%lHnu(JEp*DFnXqQ@&1os_pVo$`t$eW2UR2_zw~HzYIZT)MQ0 zH#NojX>3d0^#Twq2*H9axTiav^LCD84|s*XGNgsw`J|KScM55>t_b}bDrTCS?h;3= zKL`VLAuK|zx-c3-0KsZ3LxY8S!HT`8>5IgadgxeFEf*}^kTmyhReRk7Jx=j3Ck3xKqIUaTZ!Qtq*}XOfZ5(98v}!hD zK@8)N1)3_iBHdRuE8mJC97aYVd2YnX5Qz#KbGnzeZtLM=$3s4LJk0Q8qadis5=3Ju zpKm0sQYzr35Zdt&k@AetlrNLcrU}odGEA9Yk6Wlz!eaiQLo@!2mrIoxhhT4hq>%Kw z(yIB@+-#c>QP}2DRLE4_9p*)yF44L--v|s<4pH zS{eX)sO*M`1n$)urDXwCj`nd?MfsxUi&)&;asf-4Tc)s7Z~={TmKO3nu#eCE1oA8` z4QXqO%V%*vK2JTZXqaS>s+r0ST|}X7sBON4FLYmq476NC%Xv!5D1%y?p}X06Hf!nB zgWThzE#*4nsN!9*xmK@%n&zKl$rM%zE@91_Nk7#w>PXX}JK z(Ka17X{fPf`YdWLW8J{Q^%t@6YJJ#N(&4ZjF^7l3fuSE%w2zmy)==2a#C;0FK!^Pc zBW_J1tX9SpI;${dNyG}<6Epu%vKB+xnnITewQMsY=Imk$d_{HmqxQ8)SbScM_#&pO z_PajU9EzAjSL_ZuYTqL6Ycu9cOgCa)LQiwlA5n-JUDLgY-j0AqRmYt)9I;kM1AM%6 zx=(|P+S3y=A4hFt-|7XJp_{(pdiVH=(|r*iFAP!<4H~oNXg%tuWLBWAQ9?>gH+-cp z8a&TbcHw2b!sx$(*Y#LVa*h=Pe4PY3Mc#e`b$Asmcnxc~YZJc9Q*V%@Z=#>$5Y8fx z@8dWoFizcRyv@H!yo(>=m-rE`;~o47KgGW}eu4|K0GFf=Qxd~_vI&=EJKoosALC8T z?oD!Xwi|mC8#o(a6_J#j?WN4%&y_9=Qf6Y4gh=!di8oGue2H2=5lmHP33l22)LL3r zp1qB?SQ2|!k=KzU`aK8`&uTcFDdHYLvckBJXiH%_6EWYYaEV#kcvVI6Hu5!m7Wq7N zpdnl#Uu)~M>8k9VSb!^M;WN&)8s%i_bT+u|u@m1>;@PY*vwn3SN2}FfMrSq5W$WxB zYH7l1N?Ef~MJd~e2PRQRq6O4ayahi|L3>S##UTIkxcggw#3y zvVBa(WSr?4mzUL8=}+HcCj)**Lj0c1_K#SCKa)})BaXk}ar~Wq^`E5Ee@LJI;Rt5< zwh)|@DvXPPZ;Od@;>Y_Ez%>ctHyr;!g8hpG`L9IT)EcBp>SVDr%6+mzmP?bYl$flQ zcA{A&+vH){#c@C$kzrXQMVS+Io(9B*gNZ$dZ^s*GNv0hr9=1BDe%4g0hV?6 zqCVXrcSn6KM$5ELrF8g>IGGrn#4)9=Y$abJ!SIsfr*#L`i}3t~J#TSyPr3VA^%2{R z2OF-Id+F?FQ-eH>Wzx&vi_ah? zyZQTY4>rmGo|L`ll|k&6eQ;zyTp7Y4If$c@!dGP&uS*(l${|e3VVsu?-jysqlpH>i zJg#%^U#0vqJ5rAA&3xkqMwkorvb%w!x~0W%RW}|39ry{J*DY-$evD&mMLufAG0K@A l=lM2$foCna7{iyj&t`*-vFWP+Pf|FkGq2j$S9B$u_&+%H?L7bh literal 3734 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 k>1<{>POy+Ulzfx(EEd=Z_3FP!5~pdy> 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 E28rGstN;K2 literal 9799 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 G6W;`PM=UP@ diff --git a/libjava/classpath/lib/gnu/java/security/x509/ext/Extension$Value.class b/libjava/classpath/lib/gnu/java/security/x509/ext/Extension$Value.class index ceb047313767664be38487a3bba8619684a427b1..6664ff3114fc293bd2fcb20fbd5eeb660e1f658d 100644 GIT binary patch delta 79 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 diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Anubis.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Anubis.class index 81dca322c34c3110e4b76c654ee2e91e65dc36e6..d46d8ac349b9e51027767179a544b632ea77bc97 100644 GIT binary patch literal 8044 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 literal 8212 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 diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class index 27ac57882f5bc75d71efa78f4d5a055f45cc7320..da3daadbd1f750dba02dbe450bd242660bfe21c2 100644 GIT binary patch literal 4278 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 diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Khazad.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Khazad.class index 40dd935901a6b7402294b0a4bc8301c79af1ad42..c26f6a35d8de0f0a3d82beb268485c21a2afef0f 100644 GIT binary patch literal 7157 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 diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/Rijndael.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/Rijndael.class index 2e074e51f043ee16cfe8b35629e3e5a62fb0cfe2..ff870010d7aec68cef47837c503372fd7fefce58 100644 GIT binary patch literal 11469 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 TcKq?>QI>xj!fXRy)P(;7H)>`* literal 11637 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%0AZ=Q?$NkH|NBz3!_sR7bL4VG+mr{t=;q@x-t z-3hWGs!)p5aG6Z7m8wxp?r2%AisS|LTiLGekpt>pd5>$(sbT_i0s%Nteo~W^S4~q1 z>OPgBrmGw^Lv>Iks+)?;R0GugYJ_?~jaRccHCsj09QBl%t5&IbYJ+-Ey`mmcd&oVa zN^KZcu{}Z^t%V_}pB)&gqr{@_<(w5EkNuUDB9FHVQU))VJgjqthO3u(u82qsE)j-V z>IM5N`ejRU%eJ38bIKlHK zA@vp^^)?}Of{;2%NWDYxcmMw(rQzd1O2fy2l!loDDGjq&$>BLk!zWJiU2w%qPZwMX z@~e7~;%|Qrq%e(m*JsWd*%gv-1erP2l2nkk3UN6V7*T;yRno8^twtJGN&*F{B%|&K uZ6D9nhw!S85K@{%W&En$WCBQyNs#?0*1~3+7$` delta 6051 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 W^NaM;a_m>#DoURz)x-HZ)%*X{ZOAMD literal 8363 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 literal 9345 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 diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/prng/ICMRandomSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/prng/ICMRandomSpi.class index 5fca78ef17735fe3c7885914b4a12546ab62f5eb..f79c5f142e6abf569da8ccf66a5ef3bdff19ba0c 100644 GIT binary patch delta 1952 zcmZ8iYfw~W7=F&~*>eut!PXrXXBFa>$}acNH9)aIC<}w3V7OGcWav<#*}0po zV~){lDOFO%d6qF|DN4Jur3nL#=sreLdkor;f#V${4pM z~e;*%*d5fQi@Qc zV+B@9P=#kzC@es#JXIQ=m5^yxyjM<4sl)Rso_o-rSp|Iqt$}VG^=L3|%d_Q132Cu_ z_ysD~NJuc->GX%&^2&m(u>d=ouujywp44VmiJI(4Mzan-HX1(LsM3wFiXP){TcLFu zwi-E#M@vSZj-A+LtXF0(*sY@rBvwL1$6nE9d?3^s3Q|#gi2L>FtkO>k}Aqz zp}Ya7G=y2BNNyZP$`H~=@c1B4Ett!9BJ~cGlE+1mQI2U?g6Swmrs)Bmry0M;xk^0V z7{G0Kr=q99O21-8uE3+QD4j8Y1KG&oYUdTnwwNpq&G%!7_Amrw~2` zAzD>NQ~!L=Bw`U)F>2ea5xj7No5|TKJO-UO%LucY9d*U961aXyYi1MyEcE<8B7M6UCV*E)3(nPa6g%ejbG>!eYg(Jdh!G zwQ5W-LXyR5j@7MN9S&x6M-*qJkk6!Ai?tkw!>z?^inH3S36sj8xEx2SJI+d=Lj;T| zEiR@sL7Q8N;{8Dqv>4SK=2dgu@{qFq6ax6=u;3WSa-0O7z$567@JgM86Q?-4)0l-b zr0^{1I)_4>=ViM{m@5RlO2}(iiI1q8>r~8TD&r2>ALBg7aTuQw_H#ylLGQ2dF}}tp z_y%9%TRz|6C)~v!_#S`a2Xibtp|hC#%(F|}U$MPr&c%Xz_>hvZu&m#hY%|5`#IFQw zr)(1O3zG}6W?%+xaHp`OBn;vvcfAyw5Wm7wnoRMljC;xyy2di*n4%Vc(IIBE;MTtZ C;*O61 delta 2045 zcmZuyTW}L)6#h25*-gU&AwvoaOPefRsX7DFTikfd4xYyxKNM0v$FjB(^2?IBVTf@b%aJ->-ZYSh9W+~l9FDX&5k#quxp>(;Z=0L*iUe0*(M!Vd`sOAl=Am3e$dqJ{JRb{8L(VbE zuuzmxDM86E_f|VmhQ&ITpvqh*XG_b>h@7X?NEl{rwhcDV%8pTGsMWCob)+gD*_I5& zlL8v@h8$SM{;aqPrGI`=ED~=>Haf8eVGU~~4C*7CpoqoZI;=Nc$~Yw=Avc2@C^eX? z6l3@XL`7j6$xVK!u2hufMNCH%;^rZxM|~Y{Xh@k$?33j;vCG_N_ttvxj*h)}S3>`2 zONe|%!?9>fq@E1rdshfX_v_e+UE*{=$NQ*aB&&?ZBUO=PRU}d`?l>sg|B&tF*Oi7s z-f9hpOs6_+%3&PUa74m@zCJ3#$wnQ=aGWS(I<6$f>Y*JwPfTO2}AlY zqW45R94kvCniCq%n!l(yv)gc9GpD8YY89b54L3Xg&+X7~YNCPE6>5x3&ufoha(Y3mtUYFqz+ODEyv*ekg^9nj1>-O|iTnwS{J7mM1mU zmjT~Ipbt3!GUI~8S72ZUr4s|V@Dir+>BJ-$vRTRvL3^ zT&~-W1wAOM?Z&HJsHpH4q_N27Udo4X&K!}t?FcGQNM&O=a#4%%T$Uo#@gHa<0$7FVSj`<f5+UNoPHTS@13{>|+mSRC12R(rlkQ9fS^M zO=H+z@1pccr5 zvPbR436J7Y*9H_Z=z30FIfKa@Vj<0TtDtc~wFjqbd(c+v*1K@dAn4OHzDVOr7p~o{ zX@B}Kqr#wSsLyoB(@HHP7@^6aRwx^q>~ir&Bc-~R3i8XX-ZXco#j%p2Bo({sx9QVC%DHkh2tVG?+RyLmLl z6+6ylJ;C9f#BiJUaKxZ*eIG3GbpT#k44aSDY=%Qw9Eb9@v zX_Hyp?@ZQ8-DKl8+~Ud3B8Tv5A=XO1t#7jgmBqAL>Q`CH3QPSO3z;pH&Tj8h7(&$I LH7VZqHr)LeZAq`U diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/prng/UMacRandomSpi.class b/libjava/classpath/lib/gnu/javax/crypto/jce/prng/UMacRandomSpi.class index 9c760ea3324cfd9b141b9538ad6693d7e8198397..5248afd30584d80e22b01d954fe6dd5965c1bd11 100644 GIT binary patch delta 1719 zcmZWq+fx&F7(JWIZp^G0kbprnC{mI|#1;z*Xccb+p{>S3Bh{M93QNPHA*g6I;H_S2 z6}MO0TD2ECoj#PR3sXAwxxRJ!(!Zh8>2se-&u@ufr<0lNFW>L`&UeoFzMWhS{aqY* z{Lhb%06dF(3S1H@tua^SMEwFOumBQ@RCpmPSR$c(>{5A!AH^t9u@s9X$W4Z6WHyPk zWhxZ-{5*wKlvx{Ho8%G^udqg44a=eu^81pk>_OZ*>A5Mtj--NvR)M$H{RZ}1E#7FN7>8B#pjW~|V=zWnjU;*N-A<={!q+|( zuVKG9rBw6_$_sU~$1wG{o{8&vw;0TT5Oah)DIgY$b|^?&kG&h#4dJ+gV-oTlGaZKQ z$xN?`6BuTPe!~=^SrHTNo>K7^PFwYI9S%@Vkgh4s4{kP4HkV@~{p0+@_UI1{mkU^ShA0o8jgO2xyZi*K&Xlv1%SI zj~QUK2fMH+n}bnji|`C8dFe;l9H7la4`Z#)DNODm`q9~xI(}I2fJuCBWD3~afmn)Ki$}p!#T_T0!PyxV3iI178Yt+pv;D0<4qB( za#uaFVUEM!$q|mv{59cJhS}k0uIWlD0I~hVEnE)+Vf67jg>sl|u2ag;$?i`=_EjQr?IV3+l;|8VL9a7wZ0K4#}Ii!eT@|10<4g_k& zlyd_X4uoVI)&#XSVJBMgf%EL0Q{RUYsz1j2<8=50y%>gyQ&_~edNEF839?+i5t=ZH zwK&Upo+rW;VqGQLHMHS6dND@ZE+U)4rx?O*mfXPw+~w6he2g#g9lpXteC@b+m_`Hk zoQpO-a$I!b0du=ZM8&tb#h9BU#_17jLZ*XYDhiHfc9i2VI5Vg-AYKwL zS!pE3?&2j=v%<>Oiqr!uTK3*UFRk8s=(*PFxu@*khY5UW&072H+5f-4|NFoH+kY>= z;8%b8=le$hYVggJTF*vRiLb+(}>ah=w8*Gb|#YxdVo(U>2!Xl*>Y8 z(fKja| zXv2#N+W!mLvUMLzXUwFA^>~T@?kKEo#YVv~!r%;cgnCr8Vv~kWbdeY-b0pJtEMuk_ zT*2LKp&mD0<`q(4MJu*y*oJOWUgShl86p)7McmlI2c#mo7f}T}`M8uP?ZR$;S1NS} zut&qI*vo&FCgg)iDoF68vsOwW&hI!w(Ew-$X%NujcsfF2#f?NfZT8u~yM$cB8u}3z zyAch?1i{5-ibiO5o0)FY>{AiI2|@iN(IUE$NT^4_DPHPos5^sm3eGYtS@1@ek?Gg) z2F_E3WIQEWq#F?-+FKgl#sxm%YGUv3pIwFQUH+%5&^?B6A=PD`BNxaMcwYhMVc93| z!Uqgx{I+W;-y{1d?IR6WaFrjIo5EwbuHj?hQFmr=&O<6LVqB2Dso@s(lJLSC3O;2h z;)j(YUZDIjx*iUC0D#}iEcj-y;yzZ*A`qQM>3sxepifcIfl6AvaMIe0r--=^?Z`(1 zs_ZC8E3zN0%jka_B-#NUeHvjs3-%Dz3rI^S19aPo(GKKfVYInRcn-A`R8cVxXi=gl z-7$+gB38di_pbIfSZM0?cz$qq&Z0FsgLTu`&{a`xp+om>rcYCEg@rA-czmiw_ikS~ zgC24A9fG=rSLUhggHEM@EpTHia>;9X=*B8+M;UfdcRg5*Ug~HkB8b}E>O{p&C$GVv zdwKLa_F+F!Uxg6*V3Jm=iTDA;Y!%2z+*q`9bl_V`o|93w``lxL<=N`HvOR;|^dMbi z^gDzuT7{fvsi2sVu0KGvg~QjdSl2zp7KSVw6=&sA`6CO*C!zMzye1$2HD%u{LJ3~a z)?8mgoIy-g;<}9NU4%G=50W{O)M+1aKlB74eV&kxQM)@P9s*yZR%)l~<#MS~^2sxJ zlOI-nqrpm_)911Yls3w+e{qx-ppn#ekqJ&{m z^eDAH0u9H>X(wnjC&{>{P)v=5a2nM(LjyZU2p0(KB04ZeFZ&WnbeSYNj|8q0(hbVK zN&jwPoT^>L9o)lbc!F8 diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.class b/libjava/classpath/lib/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.class index 21708e4f450a850981886f35b02185c15a38bf33..728e0b89b4528534fb13d1c11a67c803ef72d3a6 100644 GIT binary patch delta 2175 zcmZ8iX;_q16n^i_H!Byxfeak?1$9O=G%Yb#L`6Ug$^G7sVJVtQ`)WT*``OQ)rzd;wH=~yGJl}WDcg{WUIrnUHsmIxF$>;w$b`n4q zesI7dkg2lV9S>w)7LNJVGX**nsMAJ!HP*7;=7PXLwcI)+`9X=nxKDp)OZ26Q%NVJw z)_bi^j8p|i5APU^bs$$Dad!E_^8U4+!swW&0SY9#qMHK~ z)lWtrXCWSzcmzeNjV*n^qY~ZWb)yiIB_2nSK+>#0D7UU=ZgrqKR2+OZpaDuGdcf+S35K2a*003aHAAYNzA-;Xq*PCknn3& zC1yJi6i8KTZK*vap4Q%7GlHRlK=rIprM8_TQLUxgL4gA`D#_li-CWF@sKW%-X8j1zi^K4sL|7NayoefqT>=)>LD%6VI#d z_V!}2I%e-~ERpD^ezjjWRta=wanjO?#^wwdJTS|RH?T%quI1Hx=jEA|N*vl}vQ{XG z_1K`gI|mJaQ=%s_^z}AL^onttC3?rWtr9-XRbsou4rB;eCr!-NDcB|PHg>Cx&XM+a zB^t0t{pjrAt;GA<=LZ7z-g#3;Yj2gh2}M-g@4gqrSd?>vrET6k>|xTY19hR%i$Z|~ zZeHLEiOaa6N)raTTG8UbmjYfjFTtC_XlB$_R0QU`(TZ;*zU8UrgdCBo+;T(M%l@|L zHZduaVN#~Tq)dcK*%T&aI!ww=Few|{r2R~L2b}1S`xs0XrJ1DqXA_4o-~bs5?&rG= ztbC87ax4slb1=wMfdURr-1Z?J*4A!c6c6}B1Vioy$f0o!T!`7r*l7&KL$neYhT(A} z9fd}+dPeLw9qAbCrl^jt!$8c|dfRpsM#pT$UkueCTz8+}Bab4-g44*0Am8svGQSG@ zoA74;Y43%BPK;qtm$JBOliOps!KOv7}cewdRhc!T0J9zfX{arWsL~Wikno? zgrX_+n4nd~Cc+56#}oHEmk8(JYHMM)IfyZjc7D%2cWJTXwpODRw-u+x3DO;`fs26Iw&4r7||Mv2a#P7$B{C{{OO zU4hSU9T34rpWh&P%jdU|)cgE)k}{v)L9)f?caj7|0nO^0!)T-FL2PTpPA!^}>?lii zRvmX1`uaxkP7^9i3^MOcWX)%3{f?V|WSYnKZoB!5zZnUc{zmNGa&G+&CAE6WW zb7LN0Ee~QK4k4Qb8ifeP;|wO?WBx&%#WXY{i1YjpxWIC@aN}OYCN8H2T;Zv!_>slb zLtn&o!TGxpuT>{5+hsf;2(*n*8RUXIa2B7iYIU6UPbsq!W)vM{a5B$uWuL=mun|(S zOU`q!^?dA!6%AAQWuYT4FQ4CRW;&nAy3l|G?v+bqul}cPJ$lyh6R-I*Jh+DT_|*)v zT@2$^M{(1A#fSu@+_!O0x%|>wCWW4coa5R$g0H!>^w*s{#x~z?bnrX3;0+V}-q`j@ NiK7dAM-&Ub{})*l(L(?L delta 2467 zcmaJ?YjjlA75>h=?#<)`$nYp31r%bK+(`^U(VB?z6e2^w1Zg86PT-nMIvHRxfh0Z# zEJdre3b)jTB1XkVEh4YUpkqYiXRr;MfL$Y+ade^#l?{oIq z-`;1x?%{DKioCD>_xXbWD)8kV?|;N4txX|;vBAb@TX}P6O{l!pT;3K7$2-cKLaj~Z zbxom)D<)Q1--rXnUQEW78mnm zG)OGR3IWLrFNlR(%(`%=Dd6;%R4Y5TN?d|MFP5Q6B8(N*eAkGapGy>@P(zCqbrtIo ztdv-V)z&swaVcXSfZvM<+9cLswSbGjvlUdkM41wG;&u(U2@JE=>%(r4xI>xGX$Z%I zX0$Qhq;wM!>(s8&4QjYcAb%hO)zP@gM0v3u8zg?I>Q3d{HRUW@@wuFKXpwbv$UDbdPs!mY8UL?LI5I ztuvk?{SiE-lpnY9v|=uvkoY5dtSW8tHBU)QfL~qdPZA{=?imRq!#yies<=+!QOmb&(Si6nZhUE0(s2PB@u^Q@1k*&eSAMOUnBncfjMTLs+y#nVd`spBsw^M4lb z_^U5$y(sY#4p{-+&^vKh;uZYGTB_HIK5MsLns)?8mCCCEOZ?SVg=2)ZPQUQ}NL!@g zxIpoyA)_x_(AE$MFQ036cySCzHT;dCvE$p{WRxukg&E@$cwJ$hw7PQAW0vBS#A)Ss zj`G{~*vl}Sk@y(@v|`@Lo=86W-V*&2oRj!B_fL6eh~d__+%1VBHn>9-lucPf zHf1nv%23*rfwUQmDXh7oWRVJ2K` zpusRP469L)#g!QpEWiysBT$R0_)RDe%g87noxZx=B(`Jl*jpX8PZ?cjzwV7#L@8Cp z*YwUsI^GEQF7t{;* zhJR0r?tUrJ5-{@xR&7O|LZs?r$V+2mz3-kB?tM{N8=_~W&H3oQAie*BRB7$Vsyv`J z1HO^pF{ruv&21V;)EbOtpc5FJz+D)L4H%1!D8k+B(|d3w?&ZXPfRTR?bFm3^*o>QD z;a2<(EqDm+_yaYzarH3W-H!d}#!)g_y&L5l3f?q2LuJIzD1TZZV77xZ~XX$q+{I_q6z(lyL^hmv=nKUZcS zKe+w;>A(@>mIZooaNGGeC|p~{4~y#MN>>_3>JwaT;=5Dr@?Be&!e1-hX&h6&e@9Z_ zO5wFiPZ}rc3p@qx6#hQYEVXPkU>EPd8)LAC^JFhmxsNTfAC(-j)6k1Kcp2B@Fx&4H zEI}WCUB?hj;5hU78t&&<>%!}-+>2Cl_WJ zy@j`#w08dT-r=5;DAVu{axP*`z`J;lbKwI>yw9(PCpqXdNkd{WmudhN^18uHsDq5w zhds#U!1;*mzXrEUwg$8A?Mn peefCw@L3X-HEKB!$U*cT_>>mTVi3;R=$Yv=w14`1&JzxN@jnOyLEZoW diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.class b/libjava/classpath/lib/gnu/javax/crypto/key/srp6/SRPKeyPairGenerator.class index 7456527131384221b45d0b900a4a0c3b35072172..895c7c35b57e195939770d1c3aecab73b95ef248 100644 GIT binary patch literal 5341 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 diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/Entry.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/Entry.class index 15feb5cdb2e6cae6c148719c746c9a5bf600706d..56e6eef9f445d7993436edbd1b6bb0e5c328fa39 100644 GIT binary patch literal 2921 zcma)8`*Raj7(KU5n{8O2tVN&{D9EEtfkKfMC@s)ZFjAnJT8#CzO_p?FyBoKgLVQ1X zi7!CF2dLwF)L&F2oe>p&W5z#9J$H9$LIDS6*t>i0{mys3^PPLszyJCDF97TDMHCeR zi?epV^^iWHA8k#$g`DTK9ySWDX=hveY|kx35fP}B>#df~$^9dTjI<|EX*pSe`hI^U z@0nIBC$ciEpQGV+3RDfI2Ktf$4-5yp{P?6NvAG)Y3OPeSBm`nP*U1^KXBy)IEBfzA zXkcm^geCPlV>#CtAD3H~ z3e4!0^&Rws6+FbG1NjllOz$xY3RZCcfNM?=*#BO|a^(I2-5XWV%+(&#*4@HR-P2`7 zEh?f=1ZMY}wy`fiHe$Gg`iMm}wSFh9TSK~Q%I|QpdTS_5b5r8J#BCmmp%Uv=tVL}U z8w8e>`k$~YBdc3G+-!b~YV;jV8#&K(Yy}%BwP{c2mYHeH>FL9U*C<;YLmN6I)Fukn zbf*)VhZJm~ytdO=vVp8}tBM-LV(7;9D7FbabRWJ@u>&+iRoZfF%2C(UT$V7fZl}cF zsbU6HX~I#Ho@>0fEdC*oc5O;XS-P>FT(gE(@}j^hrnwJtM2X4BTfU7nH4pblHv3e} z#H<(wWTmqNstr3$^9n2q^)j7S+57!@FPHb|Ttgr0lpc>w$v+;&6V%`D6L%-}Pp!n5 z;DCxJQA^?haL6Err|@(X!vgbf#ZAwm;u-9wo=05MV<)@uoQlWrxQx_QjL0>`UrX4Y zoXp4o60d3+?vVs5ojmV~@Rqn+6^!?s;4DsWS9nuIaadqp$$-IhPu{dLhO1zVa``=a zDTYJnP>^GG>ANoZ?W!0D8C2`JoMH2>SaUZAmU-kh^iBm66m4~xF@4md616Z5EOb}7 z;iiMV#Euax=zo`jS9txcQScfWj}$y(STcS?V!tWSK)?MDuVV~-M(#hMVicx=Q=A~) z%#3kR&s*M3BXCf|?G8%V;83{P;fzDR@!mhe9mjM3_I(M#xRHuiTAOJPoyboWXP_(Wl_2c(-v3|6nJM2o|H<0 zP_Cqtchkl$Q(kT{zt3x>6(URN>Pr5KRiR$q?tH74cOu7#yfyrhC)^)-wm8;sbv9}l zH-}%BxKIA;6<46u#{NWIs#1F}nTlxhlc_4LKAEc48j`7~wm6wmw8mtrwpv@pXH;9x zr=qRovqo!5UP1g9!c<^2pWRFVv@^v=sA`t3*8i-#JYu-5L-A0|9*p+*U*;I9-c(|_0>1Sug&r+ zzVIqKGy8%H z|4m9-;q%)a@^iVnf@|@6@(UPULw9NtkKD$n-f!Hq#Cx8MbTS&jVx-ZGjL+o30C|c@ zJY*t}z@uUQjT|Mn8S&rH8&v%>KZAx;`%AVDrUu(WFo8Yj=Zy5iE{+nSju3lqqDuTM zUy9g&0|O`jH z*LVQmP{?o5fbXypKak6hJikBroPx8^J|$*5KIPTHA58l6GOwA6NJRd!a;DUDfzQaW H0-yf}AxD@U literal 3066 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 Xztzp8A9tW!*6}X4FrpguNz-ous%)_u literal 7797 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 diff --git a/libjava/classpath/lib/gnu/javax/crypto/keyring/GnuPublicKeyring.class b/libjava/classpath/lib/gnu/javax/crypto/keyring/GnuPublicKeyring.class index af49c02363b8f163db94e4c338eb7b412565b72d..0cbdeef6ca14e94de707b038524fe514e007e210 100644 GIT binary patch delta 1647 zcmZXU+f!Rr6vn@uoa7{D4i~wEOSuH7ND@LyrO;AofkG>#KuZ-GEz%T1P30zpQg1|& z7AV$2cWnVLC|>YV6-P*Iy`>f_p z<;4B`&zy7_skDQHctMxUPZzpfAurT+9v4-~*B;s~WX3Y8c|r`!4uABf&tg z=U8AksNxXn_#LUxei)C+IKq&$<gJ(Fx{#FHx8aGJ-PzfJB^QH}}=P6&`573c6Y|J__}$;5dT&!Cs@kPqec-v?CZ z3;GrGiS{(&SyA{956PXZg#RJ;9DRWySz`+fcp6&jFLwC{gMop51ur2aV{H3w|KLdQ zWN^su>r?SEUSW`E-pybvax}BfZ9u#%HZ* z)czT~E_Sc+4r?~`d``u6a6WGR#r!swWW2*Wl#JAO@g9R|bSMz?Q=*~Dn7xd{8wc;8$nhC+3T>AZKpS8DO`ucxklDCIKpu2x#~qS8%#7F zphVTA#u_+Li#;R zZ63me9LOSSm?uw({>zM2PFEOv7vK{A`!{fqp?L)HOn~AA~syI$BrWJ)a2?wore^8UuN>lCOc9n~lft zI91I^!0nruYqTSJRLhz+G56hvneW~R3C_DXRVigi8g4>{bQg_bJkhj``nTfM7agO`3?{^7q1G{?9TkEK$sOT@hSucDjqd!R&en_AOAowG#w-iJsGC`p`}y2UC=P zl5{Z*H?EKfuWr*sMU1-wH}D2A5eIJK7E!wCdgig9(JkW5|8bwD8jNQtz~+*}cuPF8 vD3%4?2gPBmY+>oIn$un0AfesT((4b*7E5o#XSl7Uw{50p_?*r*;ER6&DY_u) literal 4016 zcma)9`Fj&p6g@8qoiYvuD~%KpBdxVfT0)^MNlW7@DlbB4Pb>9^i z+!t`c9rqPdu;1tMtN((3f&YYh-ppia%~bn+beKE$-E;1J=ic}F`(Ho(44@lx3VZ?` zlj%bAh<;R`jwW(5St}F0$C$~P>B;EcbYWj%JY^$bYN25UeKbd0F*qeVjq4GOLj*yOnt`&f!&nOt&5 z!8&ZDEi<88Msj!B%FQUaTA;;yVJ?$3a+Yc2RkWc+MJvJ*Fd`7E#VP(jBE>pJWG%Wh ztVfi4;|furcahbe3B(k13$%OU_GhNDIU}EU^Hs3{n`8z(T-3e@U^#J@Zl8wDxP}UJ z>24GVdoN#rN`U6}t#=3@I2CXsGm?{GwqP`&eVsGIF|=$q58Y{c5+=fNN)j{kTQJ z0j61rQ2MIjR><0=jcGEP-|@raM~s9;(cHG!Osp!3y%!ShpoT-Zoq9d2=ZEaboInRT zvvgSrmX<0jqzEWz^qCU5D(@0EZchUXRRti><6X17ktpO$YbKiDHbtveF#}GGwVtxK zX{#8;q=s=E7Fbs*q<2Vxki&Q}7eUyNw;UbmGRbUVev-X4lKd|;IpG8{8g`<;9(Tx> zoQ6DD+xiJ}+LoX|TaCyyhkP53YB+{zYL)B+uBoxmp;Uc1)Ci^EzIoE!#c`@)M$X4k zJSeBjLjt$C(Y=dVB@Y=P=3Ui&)ze6pVGHFgB|)`i1+MyEE4d_<(K&inyUff?bRf-2 za5@4cHBOdh@pp5~yi`%AhGm%peuj^`9STm7{XNW=4ZfnW?uFgD46 zf)@ogdTMo0PfcWUQ%2IgSCnz;@iN((=>%uEZkaq7L+;cG@Z#*xKHfp*?e6ntB{R*|HH ztzMzx8+>Y3RX%|&T-%2$Y%Ay=vT@|a|j2-CZ7?qeI2Z3L&;~TN)v)yLh zM=!}xGAiY>iElEaC6ZAEz)55m0ruEIHOI*fD&)kbMW*x?0|xl)@ox)9ir94$5&7JE z0XGQ@ox#ek3%FU}H;kS{ePG)eXf%uoocjCEHD7U^Q@C|@>EnDGB*h^nHOxl4nU~W2 z=-~TCPF|T@*ug3%*MmFkLad7%vC&zTZkBefgVioK6y8}-DC6a zanQ@Wcb0i?X9Uyc9dUWL@Q<1!To)ks6sFt^j-$@by<755pF+e{$xv5gR+{cDqA*JN zjE;5AVTOvjziSo`6!CCnQytahS?U5-;3(GcwA_FPs|wp)CfMx~lz(DAViR0J)jW#F zSl9p_r;>emlIcs5PuW5^ZGQnalgu;9X)K$=iLu6)X7S1|(o$Elye=(scylZ=i<3j) zuFms#hsv+ebn5yzX+D8Qf~+RMT0Bkor>Kc%(8c4akB3l251Y%hH{*SLKuV;65AhL6 zc5!b$#wRwpPjTj7v~On$e)aI9}8t3f&c&j diff --git a/libjava/classpath/lib/gnu/javax/crypto/mac/OMAC.class b/libjava/classpath/lib/gnu/javax/crypto/mac/OMAC.class index 449ad35b32280cb04ab761a4b15161dc6b65652e..2e8732296a2b03f7a675cb71b27c4056c4ad3a8b 100644 GIT binary patch literal 5692 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 literal 2371 zcmah}ZF3V<7(F-d4Qt;d1wxf~NVbH4ASf*$2_S*cA}uYY3T%>XSlA|Ucf(L$zxWH3 z(a{-)!7n%?Grk}J#VOzYF@E)%c<$~t4HAdWG@=iK}J`Ooi50QSI%A|Nna ztu?dPv>V#ZY}s0DIQ48pt7LPUt)JB@QG^8g6%_4L6U$5wK4B+J`1_k<71m;c6wiT>KLLgezopG0Cbt?TlPaJEoE{e4RYyVHD zf+W^c4}m=40=rVrBl+On3hjZwD+;2BQD)Jo>Eq3Xl5S0DCDX0GUe?TM%`)V>|1mP= z*P7@?H62F~TNG?Wuf*P_pa*gJv_ruvDC~`M)vyI#Eq3+C_jNRi5ei!l@yyMi^&H4G z4YQ(Kaj3{hqD}HCt6(?w2t>3-L$A@}&8d94&CwNLG>*M^J&JwL93hWG!G0W|MK?6F zsZY!cBvOU09;tX!G9MJ!+pQfhRG?x^!6A7ZVou%T76{lSfekOnWh-}(hHhz+x&!?*wosJj@Ya-?j!w+JjteItNonaMW$m_Z z&QIw!A9;f=N>x(|&Vyz3GS%6WTe)$ORADZczDS)$jX!fa8GTW~TR1A8-c|4(E)j=g zg21V{T%nMbL03?ULVMQhMcdIA6qLcx9?i0}#d5u|D4=$F=?#_9LdV5g{=~*h&Upn@ zTxB`Un#&sXSPOFRnu4?Fjlv}A@_Bw{l+9T6T9sp|!r{_xA6>QG`4TBL=jU~cl@K|% z==L#e8Vk~RVX(oI^`=$UPZ;vPD*pA^B~1!#B72bkVg4rN73Wk9$?NE@yo_8|@#{9BsSmMP9eIGQ zYTyC3uK)}(9P}xK9A)H5d&~tI^3sq(n)?KBMY2Aw2_JlcMM&_>W2m$0uh{w!JBwVm z2X14{NPnhEMyYvFxA1D zY!{rQD#d3#^&IP%&l-D-(_}mIq+L~nIe^iD8Ea$4FpdcqlgE#%^miYTWJcsa#(2)w zsJQN8NiB@>u>>nP=OZ|@A;`VW10nnoD~1o<#eh1@UQd35aPZz|0WmxvaOde?p?i$- zdY>c`@F9Oc;@SC_{r?0*eBOvpUAB!LqR$q=FlKOpd@-zb`x2l790k6DzlkI9F7I60 zA5z!1FdN(-zKbL3&R8Pc!rXWwoLRae4QhNXC1rwg<4R`f5iVzz+$iq1px;I;cyET9 z!y*w*gklw$Q@Qi>H~MH$J|{YDKaT5u83)-$;B$)kg6HxU8~P;$euZuL7CUg8(cdxt zduIHA6Znxc^%iFF3#ZY2x6H$y?6yIdvEZ7{Qcz>T0ix}t0Tr` diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/PKCS1_V1_5.class b/libjava/classpath/lib/gnu/javax/crypto/pad/PKCS1_V1_5.class index b7c141094f74c462ce45aadcd88689a8f5bddb25..0d99f3acf26b0b59b0165b678e1ff4d59f18cf0c 100644 GIT binary patch delta 1124 zcmZ8fU2hCw6n@@)-LxNv{-F@wIKxSq9H`c znnZ#`_?E7P^putasD;-Ea)$0i@hf1VZMiUm{@|P9@=SQ zmzz?j(oueRk0xHid_fRE32h162iDWM4hmf;^*uD4h?hT&sGYH1vf)&ezrl>Z$;EU4 zz0k4UPc)~(FbkDD7pN*wB-{bbTx`EZ_%-VPC)mX*{r?b{1p>C?KG4GH2Im#(ZIweb zp%L2Q!S}(0Zfnxk`OCjWgRMVj$*G>IDF_&VhJEaBKWrR8Jq~jGNx#Yl81%ROuHvB> zU$4V9EJDa{stt>YBsrpJcj!>0u@NWINLGptBArQ`GZPX_R{ZL859u}OhVUP~%kzVA z&C;@TPid=Q7;uav$EhvF8Y8}@6~5+3K~tolDN@iBDQK$pg(zQP2d&1^tFW4u_a)q~ zdMw@5oI`iH!u#OXa)G$^1f!0n<*-S{^(W|Uvh>Im^n!BOK8c{r?v~jJU08Zk{_)ReP7Zw^Cb(g+v~;-=kAG%V zmYOc%7H*^S_XPT3aRO%$##zkA80S0A4$sqnfgM~#H{-Y9GIrw%1~Gx7xW?$~JiSSt zJ7l^`dk-1LKE!=YGWRKwx4AnIq86eUrp_}Uy;;IO)kav9tegRSXqiX;F literal 2172 zcma)7QF9Yj7(KVU*-gVrLnTTIu^@_R+BCG-iY*|v6o{lvrKL3#EZbxowxmhSZlF#V!O43W9JhU$4rckkIiovW|IF{ zwqO@+_XJBsyJiH`QKAI!9NKj36ln7b7EBfzEtrmDAc$Q8dfsv;%wHlv<0{iaSzsEzXlqib0(O-ZPNFMGl%AQ{HHzX#^maX0TTgcQyeLqx}35+EvbqqQ@I5~3!8sSlxeC|tz@m!wmceb+h2fQ=`{`z zPT>cu1s(D@c`MEc?;5YIkmYvp=`io|$7mO8FxJujGxq$%XPE~^weUK|$Pw)Ic6s4} z+R7f_dzr7t+9SWA^U1_Ci%oioMk5R_;~>KYUTH!MZ9*8a*e`f>9bLa7@g&YP30!yt z$7teELZZn=R@tV`dw*oZKcsf=3#&?G9Y+Y72&-#&bI2$0BRRg+!agOe@wd)^u=XRf z8try?LS=|_5j!!5FfNhrWh8LLtA4goVY51G;W$oso%Q1_L_M+kagr;A7;(JKw<=M> zl1jgT9b&wMn?0$-pAh@+5qf z&Rp||$`XWW676gf?Q9b5Y!dD8=&8(BNH0n>ffUAhrLf`#pXJ;<@NWb%N-&ttsKMRo zj4!x9oza4a(-}Q@GM(z~uB*A;4gdH$CVJK|wM)f@e}ey327ULj91Ho@Fslq|_c7TW z(s~E=SdS9Y*DyDvhV-ynzaq`K3!kz|-{J~)Xibk2=OUy_m(+SJuE?M@T)qpxvO24* z-qJ)!>#pB>_#n21`9E&K$M3vvmn!Z(yrZs?{!M&|+tjwU&HCT}eEtU1sc-l%+$@G% zR5y*Wg27$ytUhh{q$%bZW-NMcE>2D6nWALK-hK3BwX@uQcF$lgWSEYAm^m+`ENGNV zwVfk|%0?lGUZp0|Rm#!3)Y)!L^!9VjNBj>;Qsi|GO9IZTc@Bp&48g-ZAtL%iZ zb~sZhj%+cyJ?yIim+`m~59a$Yb`z*>7*8lJbq5?_~4- zaD!=Xs&81Y$X<3iN)5yqN~M@#ukgzWU(|ZYU}X7$78Yd!aur4NxT36 delta 823 zcmZva%TE(g6vn^Xb~<(#C=>?40>1k~8AN4((iDRWHNe8U5Fd#Z%P=rJLaPfC(~V0v z&8%FKxO8JQVl>*lD_3q^x%V$nzdM~2Vw}Z2_i@he`_8@dIrdZ2zW)CB1;7Oq8rrkE zh7NS9&;{b_ z|Lk$iaZPvIws~kSFjjVT^uZ8_5!Bic7|R5tQ7IRo0{VXl`4|L_HeOi0Ljuaq#!A)F z5XOj(V>sUUeq->Aj}$^`C%xpnbCTX5nq0lAe(ov#z%5!ah-x|n8oHHi^aCZV%uV| dZLt_wRM^;zZ!y8F38eaoHjr+6%=^-_e*pv$d*c8A diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/TBC.class b/libjava/classpath/lib/gnu/javax/crypto/pad/TBC.class index 87fb7f43d67deb5096688a15e5b981fb5e55f217..9a768d4be4197c980bef489e72ab68d9cb008e28 100644 GIT binary patch delta 648 zcmYk2OHWfl7>1uY=d`t_E%eZqN=vJF0jaG>I~ z!%*vI3t`_Wx^=4IM`x+oP`-X9jsV1$*v1jGlSBludkq^9JLzN*7%!9?%va7M~i<_*qDd2-A$tr}Bql^N~Dxm+U0Imv|D zX9ePLUd^6X^>E)??A7(^3kQYxC+!YCe*n9sjzNkCm}YMY_gQF7iy!FD-0a lPG}8bTSM5^5Vmy)o8S_27B*0h5XVKEmzcJ+M!^xr{6Ab?NB95$ delta 845 zcmZva%TE(g6vn^Hj2${1=!2F5r6@l77_>#Pv^r`)LQ>OeB3&rHVoRD@C-v#%~@e#yE?6&b{|L-}&7;_ow%zPyP1$^H%_8aiy<5 z@2T)%M1dyY->g2ZW?R*EBfHY7b~+kH;TKRE_3n-8c3mKxN|z5cmF`}%-7r)HF{U6S zFk$aK={8&0)=s0r&1{*mzNaCKh=7+y&VoQD4z@VNs+8|pC)IgY;1+>z!;f`L;|?M3;tcNL z9PXol2Uun-qGmT;bBx`lY(ZtlK4b}5Bp&sDy+1Y|m<>6XC}s%NmkH4k!A z7{hs{3d?g?WNDr#GG_%dBro*}yn~Ae5zkw$I={t%eZ-0;-`^%5*cPJL=8d!wXRc$H ttsfJ*Yr__)1dIW!F@QA&u!ak(kj1cJgY+TdIBCO3lG~ycxMX8o{sRH{d&U3& diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$1.class b/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$1.class index 2f7b2d8f478dba73a38ee9ab1f8797aac75f1c04..41f77c62581706c6566000a91e977103719ff4c0 100644 GIT binary patch delta 19 acmdnVx|4N-6BA?dWM?LO#`MX}OlAN*4h5nB delta 19 acmdnVx|4N-6BA?XWM?LO#>C0ZOlAN)t_79= diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$Poller.class b/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG$Poller.class index f143726fe370d45434ed7ec1ab003041be372269..184019fbfe07665a911911acd9e4d5066f5b0735 100644 GIT binary patch delta 373 zcmWO2O-K^}7=YpL``!k2XzHQEh@t2y6wxj_YFZNlL2VeRAZ%JInIM8$5z|?gs0R%; zgP?Twv)FX7K@)5G4sDnGbhv)XLyVu=mPm#+j4jSYvm!*_OanU3d zT#+iSW?GBp2wy93n-tStpzBhJPip9pIy%Kmmo(EYt@KD2e(5J559yUD`edG466dxg z2+A^d*<&lcp1)ra_M!>rmpayCugX4tS8n-*uwl5AUs m9m}$7Ykadk_H3UH`^^peTj&XgnX+?3>NqM){P8^ItUd(>wqODP delta 373 zcmWO2%}Wyi7=ZEjeV+z)aOI)H5OLH=5~(giX$poNax!5GrlxI11KB|r3Vt+Q)J21G zuvw{nER4w%VI!$SF6Puj7eA7rW(=#eq*$uzw(N1r6Q zFDd-8NmmCkIz(d(3C`W|kH$(D|u>9wdIvCOOjH;V4y~4OQGNB$Gt1m)C?=q>q zOlgp)4)R2Yd8$#KX`E?I@IuqP)D>oRjhKERuA98l177PPZ}gaXQx@zDi{|95UErOS z^WNNiuqu*vjgMB#k~Q(ke59p3eW_1QpW`)VkOg4;ClMgT{0RX9x2c`f3 diff --git a/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG.class b/libjava/classpath/lib/gnu/javax/crypto/prng/CSPRNG.class index 717cf01987b1a62f76b5c46f6eee0e020a67e89d..ebd02dab4e063ddb37b2dfb22a614371555b7979 100644 GIT binary patch literal 12668 zcmb_i34B!5)j#LXBr}=3Ku8D>NFc0+2_bBv5>QA;Adt-@hyf`KlSvqv%*2_AfVK)q zU0StRZR=JQm8PvLNER9dY!#|?t$VGuT9?{d_tx5~eE)ObnwPQl8$h&t)#rMzM*!JgX~OWVlzr2 zK5u8(AKhe5Df2{pGKt9+2(>Ydtd?y`I-~wT2?pBy*rpn-FI>uGR9012tZuAZ)=*y2 z$dqNy4R|o8F&f5H%*iMZ1tU>UFnWe3(CKqhI`+ibQ%$<23SCn>LZQIaR)4@3VM<@t zP#xRSNrRYjk2||F9Khtk^$m548Wz+f77Ss^KkkB#aHuWpX~&|Bx~9by4T&W~zl@?# zbe%8EewyU0nyzijulfsl7S7-mWlnKU|SB-8LDLc9^psW3T}$qptlC!cB9 zv2(y0rlbgKm{Ty2I%^+`8=0rMang9E5y$SOS&&(p2PaKB?rsU{)9UN$ApWWq6--=Z zBSJ&21=Wy%9+eTGC%tZ2Q~k20*br@I8g%9<(@$C*Uyg~C30W^*(71SY<+9rHrmDJH zC(U4TMAmtVr_Y|olv-X@4^24fM4-(h%1^7QI&*b--Ll#yS?|Jny=!$gqEzqMy3;1RznhBivJ0X9sXcY19)(3r>4aX6$=((ZT89}5I3z0 z`#dcGv3;Ef`+LxX2hd`a9C%~vH=WrCS< zJr66K?f#ABq0V3wr-?lDqt{%hhy6i6 z_TUwmZJAVNk_}h;HGOu|eo_QSkb6oD>Io#Ic7y@}f&au~IY@FQ6YBLeFkqMqOqmUI z25~t$=XwJ|->Fb|;p8*GYI&%|mj<1lWl##GI_Mir6aE|J$(l6=&82w`TFaEFy_EJm z=3(-_#h_E^G#9O+R)g9I3QV1Aoj$qntGS9nWbzpfIvbXp*xqz(Wu5*&i!baX=*bx| z@l@<0KLzEa5K~TJ5{@iqIQa~jagIS@g3MDr9UZ=43!HUf)#PI)TL+ZNicW*hr42YJ z8Zvic8d`Yl63q3`COQ8+CNP+wxuG){^sEi|N|VNtX!6iE4f+;c0Q-yhq6@rp0Ho~)*$G4KGVMykBx&dso`Jz=iBzZwwX|kMRGKpj3sLhTt zbD`tM2F<4hF1nd^IOrBwON@@A&D}KgBvNi=n)8*1AHBl>haqR*ZcrJO%hOK`>Y_?W zb8Tm9t1m1=KQrj(R0ul@wrrICod(@SHDF&Xzz?4i@wGVU9zZD(;Gwzoz7}y2F1nj` z36z>;?R^H-Qk^_?8&q#T^%``#`Lx%d2C4%hqU-#?_2{_t;tVAD3pk1)P(b6RNYvM! zP{TOjIVQP;(Dk~i22Zdh)Q*L&ij7`hN7Rpm!a)a_3K9q}4|pPx+EBC-j<6*@%|X8e zJ$hEq7cHsr1X@Gkc3%skZ_=CxkqsqwGLc(}d7fx|k_)Wwa?oKApOBV7tH#seqC>Px zCOl%$Z|G4IVD;fphc7I4GU>QFPMl|9&P9*YlMZ?!c7k?gWrzbl4_wMq^jn02b0veS zYegLT4|`hc;1CYcGX_0N&jAM=oiNUmlULTQJ=^DvCOZXdB-yuELoRxOe&?VU2e?|3 zc7t9L?_@{D*Di8+*`QbG50FELCmivabKupJPmUW}LYg`-rPHhQCkMTTbYkEegI=dM zBui+4!yMpSVJ)ln}WFi$Q;*cOg_DqSn(6PcZSz z3DnBat02<9(EA2`Kp%p^pl?G0!UJ8hMV5m;P6}v8A-f_N1xz+IhC0JupOF6#gFc~u zLX>6<&$1}e$v2QzD$(d)18{F14|^7?h{M%EpADRaNZ#fNEbw}fro?AKO#ZkZO!Y*e zzqLq!%ow51v=9!{V;D9E9BhL<#q9KW<~?D$ixmZ3oXSoIJ7U%szhjsr;7S0_CA}~> zjgjUVEg?jfbCDdk`Jmug7US_{iI)q!!fEMo5DKvcp-2a3;Leahj|sJ=(0X6ce;y(> z4+bZtE;e`w{2ON--q>;5r{$wkX2bS54Ux;`+^Bq z;$++mvf5*=r~nz5_7pB2PC*CbN|2PxEDUubVhXWi3@#8WOAGooM)kQa&XWbm`%Ryu zL0T1zLWE%#kCS)E_Q%GwmB5}>ZKJ=vBjD4no+omlh+;C+(qtR3AeI-|2hv3c^OWw35s;u$SbgtyZ4qgPIBxs4fHMmM# zj$PC*+b%V@T7YPe0M$;e1q%E@1PFgifn@y!i0^t{y>N26_{;%Grp1LE*=TSRFM}t< zO{NyRgX_Y{E1bL>NQ`X>sp=h_j6`o}Y}C4h>NgHv88ddRt=i5&pg!aW9K&&k%}I3pbNkHs$hjrtx7ScuiyVFdf@Vf zJ){6lv3lQqaPTcjxken_$0;`$e5(+i686CfI{9`psK-ij=7Oo~eVe8t2lnCC7J!?i zXK)Dp!@)ltkV{pB!y$y5pHruU??AZG`i{r#D$^w`^=*p7(ZyZJ45D zjKM)t>T&TdzR$tCV-nJ4wLoMNF?bJm13&_NfCK`CMA4VT1y}*O`0HN}*FN49(pOO- zF!OEf2+4(Y5Ryt$e`TAZQiXD0Z;`5l_cIkHY(mpfB^8*u&S+h0ncOuJ>6DA_r(L4` z2MnsxH!obqKoVjZ{vu>S;8vX`W59{vp-{8JNWZuY0LAM#K<$MKMZb^n6Apen>3*3o zK=|#WD^LbMDZ#-huNn~`Wc_aqewz1z@6L`ENLz-UHTXGx9z!jQNfev==Dn6)&JtUzXeHuw-97W?>%!GGm<5YAAQ4kK}Df-kFq%H?VaV_o9nclmt> zzc(Q5v3#DvA25QX7`QbefiF2%w1$!Yy~`gP{C7FY)f)EsYEbkDZ$i0)KQZ{9{3*;j zMu08?9$j*=N?Nku-v)msshI=E%2fhaCH}(TBO+NR#x$zHq(U0k&-)w-Np!wOl|NJ> zFEy?JDcsPIAo)D)E~Qk8+`hLu6msb7*kq)^!T6L^m4+z_*>kStD6n1fE^=K^Mr^s( zBB%~+kRpsrrQ_17($!!?WhxZS2X~lzd%WwL!XBxNj7aR7bS^e^sZ^D1sG-`0v<5mO z>xAB6h8iv$r$<9^o&cz|A-Q&rF)i}T_?5WOp(p0VCnlc>v%n_SyMc_9!s65zgU+Dk z(1jXnsBt=(@kbT}{O3X!9yLM4G!aF-WPb`Em?be?#8M|1s!;f`pN*WwsoY5AaW_IS z#qae4gau(;g9zgKRItGlDbS@(1kOzeoT_+0;v*S&INaG09S{gnb%_rH6|MdtQnm9m zdD9IwLyk_1PeJyfW*O>488sr&P{%T{Sp9XuWnLC55w{^~GmK9acwlCg6t#8S7AKZ! zW-@@KRm-HYxM50JeG-k7S}UG%$w5wxrr}v3`sI?5)XzYFa8f@L{j8*ZHu^b9{bAU5 zL{dK&{ZUE%JoHB=^~az;HmN@j{Rv6^iRhm|g>m{Oqwh}Y7ok5Tsb7r#)TDk1`qPs3 zn~wg>r2Z`QXD7`+3H_6k`lp~jC#heGKI+Yo)kvu;qs@}qpKeiy(=tTZ*L~D5bssfK z-6A0978On1qMoT+R5Q_LNqJ4TD6Z)ir8V86u!dGia;sZpfw~3U(Po32GpQL8T7ljJ z&?BR5!UZ(3aCJDBbP=`M07Tems5bR34s{2B)FFb$_iC=a#1vGgd6=`ry5 zIDqp6pztKr`xJ`RzlA?~nmqIj1?XAYK+nZ_1wZr)>c@U*w2$tGYUR7F6TBXP0)Hin zRAKZ|@S$x@r}FJZq0PV|zFU?2~uwK2H^8 zWgNTDSI{!%*gZf?=CONBvS@j`hu%9#AH^s#K+!;|#vQxk;i9Z;y`#IRhyL!q7mlt3 zraK=Jj?fm`X0?|>=Kav8{XDUGN^!0| zH>HCO;5x6N-q|R*dnTpmjU3%W)boKuSr~N$L62Z*>!0`EC z_?sZ}TVVJCFnl2x-VBDf(CNH2iQ(08h8yDy&x$i#7-x8t#qjB1cotBcf)sr=eFy}(Cp=zTe250Qi+kA9%`IIt+-=uwOvSA- z-QCaYn%#m7{M&JJdaDH?9lXe{vRl3ZcxT_$nCKHI&6aq*44Mn#kADG`^8a z`4)W5y_FjIHd@2CBbe;OH~pW`)tGZLYAv_$-8gYK^>Q}?NiRLfee^j00$=Cur`P!b zdXImFFF+6C+sZ=-CWr8i;4rGdeW36+2q#Z~%BN9feU4lB1#ZV}e*?e7Tlp2ff?wln z`E}mOZ=eM8CLiFp_)-2ddM|>jcW}3UpFii1RT_VyGWb(9jQ^zy_%l_+N7OV$s#LLB zgt11IqMDQg+#71W%1|LSNS%j!=2n%ZE>c6)m1-CylB;&BQR+UGulB1k+GTu*`vcs9 zU zKHh4YRT1U!W;kWLT92QSZRLw3&`LcQoLLbQ7?Bjv4s6+hkwL)SwxN9KwKtLjNc;}| zU4ehw-Fx`zOxKPh9|EG^zm77{Y#&m9{Q6P>@a4VygILa(S+LJpBV)EHw#$3SaxY?aHS}tQnd-*2{KO@LQxb13&sr;;$?>rFO&T8*ErmxR;nkl$ll5ynO z+jXv9ZJXCcLyPj{@VuEr=*ZTqnzkvJ_wE7~T9L>^U;}0*awUz2v?fxznoNULF=eZ%G+a%i0yP~!hMY;K zs9CfCH|a_>n;O(fv{Ic+t*VqFY92+^X|!1_pi5O5ZCB-Vty)O8s0!**m2{_CM7z{t z>QPH*pIS-}sA_rw?Tf00URJgAnyRC>R6V_;PNy$aJv&tcXQ)Pv;>AE6G-siB0d;bZ zMsX!|z*Z|kc@*KgkM~0R`=|kSTM54QP2`bLH8vD;Z(FM^KPKQ z`8QB{UjCY*{kKzkKi}Wn%LfjiKii%+JEel!P;*e; z?Z1T#Eq@!{ZcE{ulpLt!(Zr3%jRc3(TFO*j8ln7@ug<3NDnO;GoffGOEma*v0KrUR7FeOh9;>kw&bSgijbIt->uZ86lq*|!{S&W9zm-$7Z6mk3SQ9zS+%`^R5&xPW#-RoL2>-@9yaDTNID8lm zzs9t?3`ml$Il+rNX5ySdGD}?!++BgQwkPdBEWZCR`Gu0+AD}lDMI@#OWYX{w^-a3n-=rAB9hF^K7L`g-6m!>60*87C*>?{ zZh1K=rpJm|(;Ikuo6NB3KYRI=6w*&cc{#XHX*Yb-YrI%9Ptdj6EmOaub?QOL`61eXd7IT?&8T_h*%FuW7E8v8 zF0^daPT#a-oP|5=YuZM0V4Hu^Hmc+km?fH}kUpFoU1pmro;zz4DoS}X_VDXlubL|^ zUJ69-x<~c!Tkbx7`_ik-hrjjkNBX&s|Ix$$l7v5VN)LZt>n^qx@9$C6uT=98JM}7i zZNExwF78#%Ire^)-rTD)klG`;?@@!~PgZe{%9)eu&P}!Drpn5Mh-y(4BlR>y^bADw zEMWKy<*Dc34W5T5cmZO1k>;u2Au9YHQQ>8(Rezvn^+)omS1F)gLuB|9;Q2aTpx!`a zcvFk+EV-`GWigDj2a zkP)QN1^6Yr%tH<-9~|Kb24n#6_W(Ff4Y~KI(T60$tI<8G;CfnPn~N%yry0(?y;qIz zR-@$=iaX~^>*%2i^;EhD6I!mLOmpF+E=pZ)pF8S$Dlo@$0Y1yaA+O%loUJDJsv;z{ zENKlbQE~~s7zCJ@`x^~W??IUF(>V131od845+^vfs; zMc4YmOwNj$`pU(gx&=-e{$;zb34~hKgJGr=kx8SIMluagBBUjvITa>LnCxH@bMl#n zoj3=qVM>ayhB*ZTsk8R6xRH698z+rp8gb%YngyAqd2rIilkS$FK5a>TJ;d)>QN_d_ z8xb0EmDfN5dQ?VWJ?ZsJo0cqXiVe|Lra@<)IqmdS@#UCEnUM9u^2UX$s+ZPPHhJpn zoHU)u5n1ako;GtTQ);DW2{hrP(_n30QGQyj=j>IL^-JrTWW5XP^{zFZ>Z&GBZ50L! zKu<>F5>H(nR2ZM>gqEzqMy5$CYaod)wg2&ro&I1@8}Q)RPE89Ns>x)FZ?Y{Z`c3&il1*t9mPHj9B<4fYMXuc}-REW(~ z>Umh60!+faGA8hq)!sJa5wmBz!QaeL|fSCV;6FEo%lkrRRG%#S83rv{} z1cSI7owHj4Lf>2{ym0a|uv!^v^||OA`lf@vmL@0T@D94zpiAhx&{o73 zo$vK^gdjV6;R^HRWd>bNR{(#*EOk-o#aU4!81XxsiTcV-xW`pjaAAt>6q(=wH7SL9fET@=E z;zn@XX2*e!&~c|h^QhcKKcTxE^i%k5jE>{M$Aq0EQhvrX>njgGeun|@C1>AbPz6=W z(_Vx2Q8lEwrmL;Z7nY&@1|6V6czv*Slk|HG>ZMw+FQ)DX!bN=W;QQg=2@i(m*85ro zuw2wf2gQ_{W$ht@>Zo3x9yDl)`Sf#x&N81KHmHH>VG+@_ejwW^ap}bwNJ1~b)(|M5 zadRZ<>qw|!EKnvUxrEU5I!}W)*c$4w(T_{=&SZ<9^ zbI?;cG=MkTmBRppJXNSn)PX@h1??Mip-f+Zc&H;QUpB#6zgfw-SOsDth0|)&X$<4qw z2K|NpDmhClkZ}Nr#zT)|DgYY{Gfa@rcL;AS`v{E(mRJf zG3cN4DR>F`HYTifU`&ili0N~KzMx}}g_#m$S?B2J22&|R++ZGHxaOvCNHOcUy*b!6 za267Sc5k4(r3G0}d=~ih$AK)>8-)VaAfGZpUY}{1D13+EnT!;N5wnLRg#qn2Wezsr zC@}{-nct3|=HhhP;^M(P#KFijO}C0)WlYj=^N5CZdSY-EXCp;v4IyM~Kn~vSgXT`P z1QK7Ccv;>e5-2-~=|P-9q#_O;hO0@!EKD0}3a$4A{aX-oc?7sCb8!xj1aR@FleoFr-CTsEyK7~g^(K@lyyFy|}nLG|2gYc4YSdXQPaC=vWFPOjxCyzs@>xf}Y0TMk8 z0WL0}Ee@VIz;ot@x)2KG;6j5Zi~FPneVd~CTo+G}1ycqnjgO@-k30h)r4Q>#Cv5Wd;+a`mTiXqw~uxckS zhZXpPKz@H~fm|*M5V-ZcX5j=^j+}vMqQ!+Ad5*#7@;8BdxG>dWcW_-ed4-c95oD}KI`;`lbxk0>VBhy7+eJ!ves8+f--q-Jc z6+H+V!XDDsCR&Oh$LAaTEiuJ3*h4^HX&rnam`*?x^8Kj4!qzXPLqnxEl7Kh|<7P1>M(lC6P~-3LM;m0zA0@DH7=HPAwCav#yg!h=>wb-{gZjLVAhfD&Z=`;9# z5slIALv;uTN$ttS2lyEh7TiwKp|1|CG~-=fL#3g*CPmw zGlle3REU}RHg$&N&N>KrrK!J)%~2_fIk2}#)xnQ36()Q_)8UblP<>alzO6#88;OL> z#gEcK(f*SLdGzHA_c4%!sE1z!HwfG+9AykR5j+%XRs@C-xyXgraRap%&KLdumVf8q zqe)lHgfjr)k1vTC{E~zbr@U%JD3SHA82l&T5oi%!Ef`Qz)Oc;cqxR4JYsn78vGu=4@LTdy2`9k38pMk#Q$1J zrbY9*H1hLb4gQc{gqXE7kk&wE9~=A}KQI3AcZ2`INZ5ywZk=&I!LwJ@v3CiRnV;(DYUhH{E1od6eYM&L@h3_ik-IFx}pwl*Vws8n8RLxK(A zR)*Zk=k0K*bTvqB+*ddh((CNlWMs&}_>{pa3sY1!5@8D&uwC*la>GzLvE^EAATzX4 z3NJ1-6c<%BRE;oHt{Mp+?lkxIwybXod!-sOBC%`Ix!BaD2CFPt1u=OgX3`meF$2mfKK8 zI?wS($^-rlC~kJBVi8jbDs;&J3eB5kFkQG(Qw=pu__41;lHyb|kmch#g#wDd#Sg11 z2x)C&qO~fsh^F0PEvmu_8pPb&qaS! zQa=ypOMr* z75$k>^G`?rjHLdV=+8>(m!XehGGsMUipFTOq~51n)ZVlV5$AOubxYkxT~fD*0J=pL zQ@5yL>J}ADv{_P8(=7^Wx7HOYuVeV+N!Ohv!3<<43?_ubX(FU`) zn^yLc_daURbUr}-`)Iwi9rsblR zZu(X?ZSA3NH_FWE_HO!4?BP=V&`nqFARd|N+%V*G zTK5pPA9Nm|>)e@{(%#^<9iW@!=Vtey1GLMXHLaI+AD}(%tW$gG#|P+c_Ym4DGw+p2 z_sLJUyPx`+d#L{aJ&<@joOpaF@%W1bZxxgYI(`YSIRc+}goe|jlt+)jejkTFJwc`P zBy8s?Si{rM@H41UKMP2Dj=c0d1?UCZNH4~D1wYv72=+_EPLD#nkKx$~ULVIUPm3=>DA?2Yq3*jn`z%eBZ{YV)9-uf?LK-> z(egcHU%tc6TC=&(Yz|Z@s>S-|+DDH4swm4I2YH%5{Hk_M7B_QWlZ6lG=WE!{=k^qKo!fL$rv zcOFC>p>4FoYA=D%`=J66{V^WO!=VOgN5S%>9nA_V5(B@K#zG|pZH@Gr{4J3XON1xpB=LYa~iu4AY4+x zwjA+H>>!RfxS!LT-94Pq%Yz=IH}A!eDH=JJ_}nBLAIw8Rf?T3d0LCn_aXV&d`-XR< ziha}B{hZV6&gS7goLf`W&3TSpG^n2onzMOq505|G&l8$4JgJA>wf$UVJr~y{JZJ=dg13r;Yp zhG+1pptp#MX#o_d=yV8nCZ7&b%*Re=;K>e58^mYg1Q8di%@&`jXf02M2u)5`{eN)U z&$BEM%>EY)cY)yzAaf%a-UNm>gW)Y;_AYLx3*@oO_t4+ys>^fd_e{wIW55`F03B~%{*yiO)` zDOB={frPp()pLue{tzL?HlNa$>xuz~1lop7|S_y`Sh7k6{u z0EhO_aJOBzF%_RD)7||XX?BZc;GZ1ukQ@U1>pH-j+}*sz-2MWPa8VC$JG>XZu8`^M z;_dkUTg3}`J2&wMxZiH)&(#vu$lKK_b&=YR_NVF|wGS5vjh~zaOd(Q&lLzs6;vs~SeW37{2q%w$%BN5ZeirrJ=edJl zK%w(jp!v6a1;5PKqfl@MzlPbbWAz*SB(8aHVa|vANB)T4#TEMlmBt^c4E|URh!DW}?^TxvV6*WXry)Rig|63JHkRF1k& z4OfR$u7-?{aH9Y$SdbwAkpd~9V5lD8ixJoqLh=^Ague?^o{GOgkzi*>mN`#DSPHGC z85+V;k!?=Y5aysQl*^X_vz^G>Vr!4a*Gec9yieh@*jgSITg&5QE#S||(b!t(+B%o- zh_BrjUwb&d_Q}|}xH``;X;wv)$CvTtWLN9)=WSO&^9Zz3(gkN$#DtAVMrem^*5h_;-_gKi`t++I{RJnCQ(nPzIWth7{0lx(i%xl!4E_G2dRO7i81`81#VE1lqqCTqphbgQbEEy z3A!&K2ulvNGVdlDoPQIg=jE?1I&?dw_w%F8J^c7#^k>@hW~S_+86t6a^L~C}g?;q_ ze&U=NML8)VPFT$o^6t>BWN7)@@ODQE=cMF7B~Kb+iOyD^!PO*~~6h#vGSc@>7~AkjqbNrsU}vJlSyho6FDQ$xa2ha0|;R zNVQM^v=|McufS;030#ayW?^>{3kkx9VKJ#Kl%vk4G3o-Epe`i0+Ny~hW^NlNvIwa5 zA`UG8`u*BEyaDTNID8lm-(~t;1|&(lCbi(onK);V%u?Th-Cc~cE=}5hSbYCs@^?yl ze|&kc_Adnuk~*cx{`cS^DWO(Z>TTqLj0x5@N7in9u;X0khZ@{|j2%q=_ zV+pnj3K6+w#{mlVe~Xy^EeR4$t=&UTbuVS9y-DKEj*A7PD+Cx!G=QC^PSg5l#{LJaj>7(1?GTvs%SmAFEO&_(>w=5ZF;YRys?V~yH%@4GXD)|a#iDogR50Inp+GY!K zXN^K}DR26I{>%2OXA8tjt>^>ysBZqq-OGQw!ww;C=#ql&xLDYH`Dxv93? zR9Tr2Q5~vLq@IF^o`#5?ff+tcdFol9!E-=@=OLySXpVXjQQ_B!3csN`b(EUb@2Ew+ zL;>|OBEu^%&sXU}^%^3>>soYj^#-#s8=;FWwKAq98$hH0tg0V0Kj_~I8F_@_p3=qB*Lpn-D>iU zwAwZsMXQcxfcd5#HRXVsB(J1wC#|EKF4a@%N=yjdK$+&k(mj;A+&+60igf09E{xAY zIONqknzPmP9(5{`T9&ki79mKQ*ksz=+cZSI17W^PW7T^QJtd^a|!|-<<@CJZpac`HvIo|lr~X#S7#)%jL#Di;x5OD;=|R#+7X&8lpmq7 zCIgdikOVa*xj8p(SsClX!?MSlWub}jQ9KlD33Y2mEXe-I}f1UuhBme*a diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslInputStream.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/SaslInputStream.class index 8672abc861aa72703469146459a9906b5132b1f1..267aa7d35bfe6c63b9a72963656cda47580e0244 100644 GIT binary patch literal 3857 zcma)9U2s#!75-MblCEW$*v2XdTOj^zSy&~2n_!y+^OGnsHbDW$fe>Fy*Fr>=l&dSS z)9{zH2`wQ>TRNR-C@`f{&vbZ5+G0Y`BE*K&PA&h1e}>%N?=i+S}fY>Oq3I;bT$?3V{ckr0`5d6ZDwtO zkkT5D7R*G^O4}2av$iM=sar6uL#Fk4x^bmJ-Faii_%7pc+{`B9>E}!V5t9aTMJvI9 zzXa)4yxdir&f2DxH8Q=$Q31!^UID$E2(xK>6R*?SwnsqQl1rL3pb;Nja0}eim(H5~ z#jz37dfXVv(0pTGE@5Q$7*<-2%aiWzvYGo@zv!xWMJLbpZW~XSc{`oU7CdOFcKg8W ziWg2S_F*9!CCHEu9_Tuj2`o{e?3i(IhYV(iWgIThM+N$*7AvsIgOvh{OF^H}ygd{? ztVS#EpEB)!GnKQ`hHWNyTDiPw*%Jb*O81Lq3@@-10x5`gx%#qSfE}} zqe|0@2s%7iBhXM;iZLpriw{wJnGwkwR>9;PA>8e#n7sGBKGeb|rS(44z$>LrAL=lV z5ws7a3j(YA{x5!$7MgUA3~L2a`CbB_6U{Oi=ZI!4dZfF_t2y0WG9XaH@kGHk$9#AcebT69854`CKSk-N3rebY-ymVy058E-ovs?G}w#mG*%tA54csT8`JlheOJ+8z7Gx3aohf1+n zTg(FzczMNxv24;DA1K-bqrJHz88}N|51tTMP*E(oy0@6lBuz`lle}SWbhO8dLF|(} ze`*dM5b7YF_F)(XAsYESc`ne>8mlJbEylZaB&Zq*Wz4LyZ_3@g%bIHc+=bG&TRFf| z5($lT&`!!epiCX~;TdGeUOQLP7HDd{6G@jByRlC?Ip;$j&$5!qaLSs?nlvh_pVr#8 zw^s(d;KKuW(1T)`LZ$l40%jHS%*a@!Cb0aCFfMc(TY_TrEpyCZLCUf~yOL(crjI;H z!#32aCM9`9zm8+9;DbgXWRB;Vw%ia}9~vpzp-~yNkQdF^=fMjC?Q>_-wrnDo-ZXRE?W&lF~_^S1$w+&`bAHSFb&OZ*H? zZ&7gIOKj&U<2_vLhKBpGK&^n|g$Ph*5yu)w&C1A0&S;!z4PQYp+%x)C*iboVF+l?lad(V`^AY%2E`sR8GVEa8?^oxBOSbV9+(%uW zqAn_7x5^UBv;9PIKQ;$$fxZl$na9q215mmMNxA-=<8XW68*vtbHb zD=zm^7f8^F$tr95thMcT0r*dHOa?gZ=$5!{;2{O?93GIpb6o>IJE~TuwF{^VJKxbS zWAh}sl$Mr!N8ceOE#iz!zs--X9{xY`VB)M`LkKt9u<~5}7Ep@H+giOHYYdJW-la>VcG*Gvm_8ueC zcPVL*ZJeu;Kil#6?ap+ZrmY&1e|O6pXl`krz6gKt4K%a_hoxM@{wzAKVfWBA3=TC8 zUBTX#DeP|?nL;usg%pMMX-ZQ_U%}Y*;P>HjUUGJ7(knOME4k^1SP*6cW$7F_aTB`Z z(xBr~P_16X)?i8B+1?VQ6HC(Rg7o!9mlT5mmowl}?hd$=#`l!QtP#H^ zLm@Y}__g7lpkGUFnnadL%{@oQ{5wV>af+!Xx5XJ`D{B|3c=IXnxS zj+e#fr~E7f{y_PU4EKBJ#GlCV_gE(0XLyfP_yni$U!1|GI4cAug#(v`6VsvwzZPEnUew}!;lp1<9sVvF@qzH;L$MGai2yzp zL3|>X2qBh=2C+;m6wBGJ5Ua&15oOyW!lGBS^CLeZ`bDGICAt*lMrGXf1>wrbtpr`FA~~blbqpI?~(_(T$FXp2)B@V|=HPj(m_6(z z9;OoEBom?PRN7l|1M_7UaW-GYH#O{-L_Npr)c947BX9Di8Y^5AADaR_aEyJ4Cx=*y zAs*$wg#D-!1Nkgh4o@THj1aQmHjp`%n!-^*eMJQvL6yjn8HL( zq)-qC`SFp#36baLg2m^)fb+t}kJe4Bbs7BZ)rlaJ_k7&QmZ{143yUd;di literal 4002 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 H4CDU-%Q{ns literal 2860 zcma)8TXPd-7=FHHlij8ZltO?)g9r*~S{gi6pcJH)L!h?ULIDfPHr=)OCMsZ83;x&o^_tKo!Wrt)^$9VvQi_AI2W zW7;Q8doJ4!&w{q|2aVx&W2nQ-_H?9AnF1myp!ApyT`lnmO`*$|v@K+lO}kr3JyzYx z7n-deGmJ%us8}qpzzZZ}Fo5Qa;W#>$V5xxGXS%J%Ae}6ZRr}bU4HLvz8^Wl>3Kh!* zmd%z39aV@5loH6#j6hv%I#L0Arc9PX;2|ABgh;a`oi$tYgWaaR-{{VeS4E4JGBTZp zotDo9WoSzw)=j>vIdVU9!eoZRJBCwc&P`icN5xu!MGrb5**0+#MgTD#t5Ggl#&xLB zG}Mx?G#;*dQ1Uw2V0E@J6E_UdRsIW@hRywfi=tvZsPW{8tamP#yH-5F-Q?K;}f zLDN`Qlk6VR&FP_>MZ_q%CQ0=OWnf35{<=b3w z>u0L^94Kjlvf5SMb;Rj&`#q@RIx=#ZXs+c46h*BsO_f>T^BhHV=oDJ#c;h)?EQ=>Fs+z7JGh*#cz0A)sP>9+~l5?g5`Z4DA=Zx&u}Qh9ai2>nLE>R7e%IiLF!~F@i5yX zz|T(*%jFiMR3i6;cXC?1lk?-9oEe_-b^*%y-aq~GSPqfC@-@;R) zXo!nZG{$R3v90K1B^d$F^6j0R?_G#sH=-Pb)!2h|*z5U?``FlyCfd@A7lmXVlbe9P zBmCMl6D8pB+wtH08a;kHr}L|xk>5TtXeYl8dfHEZ2gt9J{0`2-Pv(9$ejM^?{I=6t z+AoNIjcsGt;~&oz(=^{Ja~A_Y!hnx@Zgu~aLRy5}C)0rI3&2_dxQOT%*C1l|Bs6UT ztquF8q3vLk$tIW=SMF+u11rw$AH(xgAv5f^K@W0?Z#+@AdCZ+8Ex6APOa&J|6TFn* z<5lOeqN?WJ6-1)vv9Kz7OvyML&XaU8xU=`^auqui?EYbI@=VVR>AG60KJ#RsVp9JZh>U%5CHnNYe^x8hwo` zHI?eU`d}oe9=oe;)+)6?Bv`)e<#YQhHHA{SC-J&m^Q2HD$SXBasi~3RE#!%{tx_Aq zX?i%;7>y`BThE3>^y1&PykW763AFha4Y+ug;1s3P{D!{Fwm!|Vc!i_z1}l7qsXNQ$ zz0EEBE(UN8C-6SCAMp1gKE%hk#Q$I56WqY3_!gJ(J+9yJkU~O-dSZ&M>MHoc#xC5`=XC 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 293b0fc86fc273ba49a5193f7b1e1e548111bcb6..00eb2b46364d75c876843e91e0df6fabb9062601 100644 GIT binary patch literal 18583 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≀u;$`QxRMmOFV2q{ z3f!Nl(8dH!=-gyWWt=Mgtj4fcRAbu z!?U zuggS!L#FU=pNB7gjCtnq2`!t2eRzSM*O_yhj}ZC~T_ zUjs$Tl2GK7BowTSZ#D7T&DVELMnr(9j&JIwNuGz_t%{>2p-x^*sF6v^MPU7e!{zSM zATNPcA!5alm=`?H7P-F8wkvkT##sQAI{Whe(zQH>fa z%=RcOm0Imfsw+>SCqYY3IxRg$U1h7f!ib$PggG=EUjV;~(DD-6%1^?fdkM1f9(@b@ zUdr$BOpb6{QZnHH7UN7mgJgaM$^3>6;qT~h{+>pOP>HzdILV?(l1(!uhiarREs=h7 zhV;kvOD=7Y0kl=}X`2+#b{R^~%Hi}p%2%X_UXx+;jvPZD%5eHpM$orX!iURf9*(k9 zO8HnhmZ!)#o{9T{YMH=`AtNi~1P;n1Zj%aL3wb#Y8UKsrL@3i~yj>i78AtpI9!yFN z-;|UZNVOw1hfqHM8It6pnY=hrD@ky^Hd(5jMj z7tVP_KL0fpHX~N_!^ZDbFIDdL09fLQgc33`t;nW7?^H)yIj4dwd;D0!PzU>Cc z)lR;WUHn~KXo~3!uLnKvUY zN5y5hBT-2wb1(h}gQS*np|c0dA{r!1XqcQzqos}}$Wl50XpOS@Fdi$&z%yN zY3?)PQdRDDO@QV-LYXFOoH|^9(yzGC-66BxQ`)KjrYtVVa=7P@LvEyxRYC8Tlk4(j zZl}~>g3OD{0taxu)H+LoH4{rNI@pqfdM>%dJ+*5|Wwt*Ky^+rDS`uQ_YsqD1$;Cak z&$Ow{U436Ueb`|FY)JcD6JXI~$$mOf3zbiAp?5#^ zFZ4bktxOXa~<5*O5oAryThS70OLCL~fy@Y&*?GIbZID zZM&aV$%7P=hhg7#(nfiN&O_T}@;F@~9dxtA>28$w$u4?ao}^u}oA$^a+K2Mz@>AHo zr|2#D86@}_`nx|L_SWR1~es+-i^MBX81mt4|L*)DJ&ZEL5&+N^${`jhHMo*I{}8t9^Bm;9(2 zC9)J6A8#3r-l>nukK?jkTlIC)qjHn;3dowp+%!5ax1!vfD7WpWd3fEncRS5;BI}cO zb6Fjl)Y57X9$h-&X(EzF-V~3f$~NQKgl8+BEuC^lT<-2ldvB#-M6N!R<-&hYy82PR zE0+el2GTLE0y@?;h$gy*P^D`qRlAC)!F3d!?K*}oa*d#^u2HnzRZRD~#?ZsAGU{|4 zOZ!~o=q1+#dfhdV-f^8k@3|(?2d;AZ$W=j~B2@U&HHE%$O{IUiPGq<1B=)+dvE`b` z{aq6{&o$k!QIT_GNjBnqxew-sk&M4mc0lBCwV)q^J5Cc-;a$@yO0y-;k*|1{Jb-%+ jee24On7aknEb_Q!Q$LsAEaN1A@)OIjJfvwOdHDYT_^ev| literal 15872 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 literal 13470 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 Tlw;&ZZDW|TjX$t(#ee=E|4ZA& diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class index a310c8fc232dcdfdef87f7390a1333214b9406e1..d9210ca9be643a718d09217de29f0695497e1816 100644 GIT binary patch literal 7171 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 Y#SG9A{!h>15i(}xWeD*pNiA0XA0v!pcK`qY literal 6668 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 bI8-_qDlUo>?RL{}2+H9XVuma*V&?w>a@yd_ diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLEngineImpl.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SSLEngineImpl.class index 07546f9c8bb5911388913a27c1835bd6dc92df51..71a1a767aafb3e0014e528cf0ac43871caa11e86 100644 GIT binary patch delta 794 zcmYL{NlcSL6vyApzoqR*S;8WI(4s<+ML=XJgs3gJL`jsbhTz2_EfNP|{ZK@pcC z_<;x)qQPh+8nC1>P4ps~=+S6M@M83W!Gn0>BJs7+c$we-y}X(Ce>3y?iCCK#QSY~c zuZUd%U)F%!1;1TRgiBps){b(X0Yn!sOoQp%c^t#uS(ZpOGeiAe~!g z$Sq_e207d|7rU?*g($!w6rlknaKnaHl=h!WniQ69#SB`Ziz1@NJt za}gBNO?h&YQpiBx=n)3Av-KJFPsru12C*(a;4&+t_(f|NU}X}U^c91YNebL#WP1)W zVUARkqKr)JB@#oL?_hc|s>4prAy?e-pVKS2s==9|cak2bv<-WbcGy{fy}Oa;wXY3bw(7c;-*A|=KLBh{ja6r#QK^3|mFFnc&( z+PaleEtCPN7HzU1TSeQTpiLn{wQ?2RX7il~e3x_X{qfwqeP#-`{=R+#poLHT5W8Mp zVZTKS*E?gaK{LiH1-!~@Hq-hmGFyOJ)P+ofw+eWhcWkE3GxPRy+ko$(fxGxLn(b=e zED1SZ5kfw|i`hW3L+sMPj=5}S2Ky`1GRtDKEooU{IEPz|KoA4WJT7E^4+hP2f~&omyC{Pn-?73;>rd4rrrD@J{bt)ta7tOg z{6U73%7SJW3!FwBLJT9o1U&?qgsby95!5L8ykTF&tA%mODl}<0UyCNm&|!CdafB!%y_O0Ngu811PmX0`><-VTvENExa_(A00TvO ATL1t6 diff --git a/libjava/classpath/lib/gnu/javax/print/PrinterDialog.class b/libjava/classpath/lib/gnu/javax/print/PrinterDialog.class index 8496d9b185796e026edef4d33db0c5803a4cfa89..ba496c18e1b6283d8eba6011e7deac738167fdcf 100644 GIT binary patch literal 7406 zcmc&(d3;<~b^flT_hvMD-X>l&-s9MgG#W{X?QE8_$h#AHAqF{e8p6})Ssr^lGtA=H zp`;MP-T)%Nv<3Q|d*7QymgVqAfA#M- zy6@e4&$(y$&T^lh`oqUh0=QJI4xvF|-f*VWy~o|}9_Y^HQ<-A-Hu>x2*QVTbb~uD4 zg$vAb;kHy}xcmBG!6vONbi20|yS@D$NqdvUR5sI>DipnpmshZ|dv6^qD$MAsDo2Nc2r8*y0Ul`!?B4R#S5BuvhSkrCh+E>pTp$ zkzl(J1T3byxt!# zXB1{nw0layOMA(pH&oef?@GJ-vo!LoI=Z#lzN~TkpRPh>x#Su;~+RfBB40@WO5O**a^9Z57RL0v<+BfLsU+NB~ zJ%wmrHtDAO-F!;k{YiV3ug|0YQG)*sc{jH^l`O2uW_G29OL_GEJ)*VQCIgzdqVh+IUN(gWCT)M1KsBDO!5z8HPVuix`8eP}t z-F;rq+3fuj&uxzO{s_%|xq~ZkrGmp~C0tUs8(TNE?KJBv9rR!oz0UQuCPvnzvjuN! zj_E-JCx+TKwfBcWOzG5Qpx2wvy9XurL~u2(6S-HlU^Ui;u*Qc_U54|`?O+|&D@;!n zDyH6E%H^_o#u}|-)D8$MTYB1e$|)NiY{Kk)!*0WV6*HCC$pKN zo5~b~c&meLcnOJ#ULoG(!&H0BCzpNO9lR7TqtY}LG07;}B-1+_+=KyzP%*1DS7>W9 zcr(}!1Q=&7glU5NKXWkEJiXjO6c@TU zx`o{u!{g+U2t4c-Z=@8K*PFA-;9SH#?foLbUI%l~Do^_y#4uZ6ly#637}*kyFQZ8m z@(v1EKuhJ^X0C?eq{2c2^K)aGMXs1C znq;9vsW#wvTAF|i3g8%=@(e|zs7(qj8Sge9kd*DNnqV70vD77l|BLL=-XF$Y3RAUi zT~b?zbUz?geS?EH;!Vts1g=hy#O07lwF*mXgP=bD)>=mRyhTvaMFba2QB*j5Ud8`E zGpg9+Z3@$Tn@F2vj1s~-Xblq@ev_ozfe7A?cZ!k=LilTfppt4=XY)f|zRx|FEiqf& zgLlf#zj5#$+)J=B@0lgG5H$udbDP}^osnl?gz#Q=NfS3o^*v4mhj5?BbHBo(w(|sl ziM+pc;9yc1?`NQ`VT!Y6$k=$^Q; z8p1!a%b3_xwe4&KCvl(1^C<@rw1n_a3Y`;^k7-0Bc*1b_w1df*62iZ*Ppktdo0&mx zNOX$eNde%$;xi%qn?kI1n*r*2H(AW)4?6gFe3s@;<~=6Ub^CI~gJxaf!nRHPXDoA| z+r+@226?yHLIXXCXB>PEpEn2(DCZkTjZY*_`Xb9Fouo@n7++?tEV_eT{$)Y9e#OC8 z@ipR;FrZddRMzI3DjKRd74F|qm?Zop!!hnkxiG#(ugg^RHW0$M{pbzET%A1-MDKI> zu3+|i>@jLESMhxhI~56;XCinWKMLW8>@({ve89nf;Kyu1j9oWo^QqefSLqGu(%FCu zf=qb+M8fc=gjU_b!Hznd29qKDtQMkcQ~SJ3fjw0OFW?uV$1fR;bfyUXJbvxqH~1|j zHlp2_8cq%M();yCR+t2hwh4{k$T0qkb+FHsIvC+)gjYWkO4I!+R+}wg z^sJ9pZsA?AdRJk=T;>O5(5JnK#)9!cCfog6Rc#4Xm^+4D?J7^7MWBpNI4=ORMyt76 z1#P|DeWvorT4oe|UR(PFHH{ftg&ox_O^j`t7$yhB6!nA(ODHlBhZ&kRE$eh23>y7w z(r%%kn^2{uI7+Dow!~_hqoQgO^-L9dgB#zPvpIzW?mWoEPYqA@@BRh0-_GS0a* zRDLCp<69jSQ!^Paw1(f{SH$p{HCH^Su;N^d&-QkOO;3xOrxt|Nd|n7mv>A_7*q-y+ z%cfk-A>x_x7#7>S{H|<%pIikN_+kjSYb(k+`SQVX5>XeaB_XxA_DXfuK1VH87c&70 z^z=QMVILF}ZQM%VuT;CE;?m$o2)F)JA;lZ0Xq9kOr()M6=}tGa7aPGQu*P=Y=HXvQ?dKxZ?5sv_?qz=t}b)b<Ay@VcF!}Z8cN{_6_dgSd(kGy;7kvA_r^4_IK z-n#V28;>4&2jVzezE*IYM(*>mfTu3xn@Ax4nxhvU!$luM`$zfGfDZnhOwnLH0?Yac zNp>TlS7ep#H~)6?y@}+P2qSfhN<=twCaz+krjAi8i#L{WS==h)s#w!$>^_032NEYo zaqY@*j!FDAvp@?OS<9d|XW8O@245B%}D&eNC~3wM@r!y(x~ zep?>L>MgNw88?0st5-J1W8qkH8U2rA=Ll{-f^a;+vGdcI6i+lR8^J9y)yXj)e+;*b z;MRDoX#{ROW{n^jKLKwbW{qNa1bgB$>=C5-cNCd;8L#B8ST#k4_efYzqS<;1ldUtj z!1@eYtuI!G&)^E{bLi#s4b~U1)%qfCvc7~t>sh3&ui(|z*Kw!yO}xSS7T#ff z8}G8di~Fqa;X&(p9JPLgvh`zp!ukn5W&ISVtrzf=^)qeioc8`1+=c@*D-DZ-xLtee zjNHHJ0GSgE&`o?2?>Ffu@xP^?1Oc{wdKLbh___!?@oL;bcP_;e`~_Y^tfk58wfsrr z*oiyGIu?2E7H+NajwTv?pfRyM(HU!MioWg`UO$RASFNN0V>e>5-Go`TrL|aLXe(N@ zRy6FVoJ}`>E+C1l8r2OYCohNV) zC*M`Zy9usC1MyM3Zv=-s3BJS82g-PmvkwhKKd6QN`w=|Mg@=i>kC^$71@j}EAJOw= zjCKm;i6eL~H=PugkB{I~EqgvcA@lz{g3~APBn5bCOJ|t>j^RuhPaED}2za0O%+BbS zxR(-~D&yJC=-185Vg2$=^KzOm6weneaRSc`Bp65Eq27tg!QW3D!w<^%&m9TTQa_x) z3j^WCQT+TEeif{Y$b&FTM1My;t7y7Y>}@ZkCl|r77h}4;1Pkn?=&&!wWp+E(*>P;P zJ8+AgfM<6hZ!g0g_Hw+%UV(Spm*al>3LLes!f|^gPT4(p+Fpfc?Q8LU`#Su>?qwxh zt0MLWHOtnNvQ^?+ z#}dC{9O5R`s3a{5@ijb3BFv6=F!@z&8uL^}7s#p{HOW6@gRgB%ysRd799L5t@L`@=Q_bu*qRD;}A{?cf8MRviR%lTd zsOci7nxST%gXydWRFyXw?`|@E8=2mH9;UO^9G~g66-gh%9!fg5mZ`zTJrgohYN5K& zXLgs*Y(+;|EutwOeu!pnEUPv?C;8iRTy->nF{ZkY(ByhWNiF0=)#QtqTwxzZi~Rtm z+V97F`#~(Rk05S;5Z(4sEVn;YBhiYA%~q&oYB?oom5+PAM9V0Vcsu+k+Ih-~s=%bOB1Gs)s^ZhpMD8Pp_hQ!GltlDSQ8V!Bw49?#vyUXk{k_4_#c<61QF_L bbq&Ya4Advs-d@WxaFXM791n5q#nk@=?2Dpr delta 3465 zcmai13wV>&8GgSe|H+@^w4^D$1n33IrA?C-O1bnxpQrE&+uWS`ouoGy&tsn_Ip_b*`QGz> z@ArM@PcIdoEVP~a`nf{@22j~v+dVPX7#lLt$AaF*o|sfqU-UE1#FSCC;WT|o{S9gE zDe@&e7-$SMPwG2JVlajfWW7H)&0in5+gDNLCz!KlXV0*KP$*G^Vq?3xw`Uk3;ZEOO zzPyHDpenDduFkh~VxT@~LkWf}z+yYfFv^0FgcRciJw=lkjWI@oHdrsgSc#i3&bV32 zNG-txiHR6T(C61w2YrF+dWA7rVhW}jYqX5?5=@hrj$4=qGh#ZXtn6`W&kTu~m}R`I zl@#12;Xu5VDbA5_B0k!G*N0>yYCu?lD7 zQ;ZC2_YrFIof6%VqGnYRE_720R7=z-g+!n_5WJOX5Pm38hjeCF>zltw8G;fG`!0(j zO8YUv5ex*Y{JFKh1^&u_uc~H&+ObmN0jx5{>LbNZ)zMz#Vf|_PnNey@8viiCsf1mU zSHCz=y&!M=RA05f%7!&qtG1?FU=R``()$(%^G4RxRr>2D`j*x-u=wk+R_)v%@hE;_ zY_WRGn+Tq@j#T4gYkcfRJgy)%6MAJ$WMgJ=_6!x?FC`>mbv(&&jq+Cq{dEdtt4h+Z zjd8ZzS=(Ea-Og!bLoirVt>ZTYts$L`FZTJ8mS@0pDOXmRCQ{wOV*w_%8udl(UDq)w5GqHJeWnElyx6AlUpMqlo$k1M9`8_6O`R|PB@YAby~*5V*pSUj>AC%fc1;v|8H zyO|u4;z=61W3gUF$&yki(OBh}Cwfqtg;I@A9Rp2MsGE@)KUnml-WJLd)%z*^FNMkhPZ|V&LX)8;{WTLB~SmM67Cs+ljw(`Ps~_dB_0h2sGXeyyzyE#hlZG z0d7+m1#T^jp)T`rENnqZx#v(5N{e*UVCxQ~c@nMpF7p9|M#NwvVqLm2gz>$ZE3A}g z^&EQgn+x9KNOI}kFvf3E8yIlXVU$gF>0#V_5M@PHw@Y_f!?^V@${R6z2XwcGNAC&5 zx;>`+M%=DUULM`<{kXjmbKNd;Bj&kXS|cjlEvPJaX`v>3zYzg3A4V3YGf_5HLv^OzJdkYoX+o;ms z!M)lAEZ5${1KRs|M7xOf+K1SzeT1#rC)lZ7%0*bag6Fl*a8$dB8Z_QTwxP_Wf+%AF+oK_Bx*kh4I`DJjS~YD$Exeakw)+&yOnm z?;CNf1t*xn$;n=w|C(_sj5AU2*V@3p^H8tz9Pecchr{@j*ZJpWgw)fP$kRK~rDOcS z1Qj{v=4rvZ#RgG? zEut7Z#V{NYr8pvnBF$>644&~X2(Ad7rs6;NFPB?a%*9tcGhqw&#aH+r&j?@Rn`qte&BYfl zSC__8RP5nN^wJZ`C~k|KBBL8x4%A*);BBTDQUsKDDW9c!MYwbL zR_c&9a^Z?N5T*L?JV2tzey*%)Xw<;u|ml8j#-VJd;NyLTaR( zNbs;|6XJO|940Fd$HHXmAef|X0I>{~kXX)F!wMvdmFOW>bvh-rjV;+p>8Iiy+ZwOk z9j4fv1Jor3yVx8RJbKfthFLrWn^@f`aC;jR?BpaBIH)TnD$vjkP?KW#H_x@GYZ-MN zqptl9R2Qk*$zbo{?Ns+8z*M_;294InqYTF9N0ama9Es8?qZMsMD_TKLn0m6BySB5^ zrZDy6c?Ew02gn@*ZZ*o?!Kz1ANWG}o(4l%SzO^B?!Y;PKA+{q;>+a2-d+Gd|ZD!Rre>N4+omz`}ch@oO87DFX8jK^-=uSdD#O8H-p OgFFuBaU+i-;P@7vL$~$- diff --git a/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileParser.class b/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileParser.class index a985a494ee6b5cd80283baa7354c2820034690c1..462f0c832e41428e27da0afb1ecf6af848eea277 100644 GIT binary patch literal 5361 zcmb_g33wFc8Girly$l!^5?KLR4hcCRB7(Z%a0v;l<}wLTki*Glk_>ES*O^@iAhs&? zYPD9a6{>>TiU(TH1fM z9kwPmXokKev$k7J3LKVazFtkzrgvT}t{Zx40nJY@T`u6PPPA)2P*;HqZn;J`w1#wd zn`XAEZE;N?P?w0Q@#U(i%kNpCd!B8^4+q952te_mSm5x1be5`C7k&CsgfY^7P=ODA zI!txxmcTKeJFQF|8GE2pOR+e*QJ-i}$2E)A>2Z4LAxXNDvh)I@r)M7NiOOb8ZD(O* z#{Qa~n3hcG3B&SWGPUfOsS|DNf8uArQxzPIiPV>gW`dC75(U#yDlo=&5=kZ-&Bj!h zX4V)fbF*F5RRY2!=tG^4zzkG+FjHXUK$)0?f@7cvxMFclC0~venDvDr_hS~0lQ>M2 zwVtcM1Fw{wpx{J=1$>6qld=h7hZvR5<|&vj9ea~$t80-O+u);cp@NeTAxzdrH7>EY zL$#^fk}}E9Dle)9rqt_}#c!dKttBC~Bc++4NK@0ghDd$Qy2j>pjjc;-nq{?W6x3n~ zlT+IgCfQt+g(Tl#>2eREIUMX(h?u6jxlXrIek{cpX{Sy>JsM=J652?0%>cUg3aMOG zy2^tlfg^^7yeO^5iM|)j0^?VxR!HkfvI*_*x0Qt2(y35KB5kyX{Afh0tl|=Rw_L#r zd`ZBqCX<@c&b8C4vt-K)KWn^7u2`kuG^}QnsYIq&q)CpSc}rNrwTDJhl^==Z%IOMJ zv=J}zUSL{&dkTV`a)1Y=!(;4rUV

k1Ds(0##w^K4synlOgdA+Hk`%5L4ND) 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 acqc!u%F{xD7)A8tNkH)JY>ya?z<&T!0c{xo 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 f4f76c8e89b6b6d4ba49fe7d58f98ee226e72353..114938ea149db4ae6bfb15870ceef4d596e79479 100644 GIT binary patch literal 3229 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 Fe*yKgttS8g diff --git a/libjava/classpath/lib/java/io/IOError.class b/libjava/classpath/lib/java/io/IOError.class new file mode 100644 index 0000000000000000000000000000000000000000..439f9251ae17f8815101d6ddb12cb7ec6f231929 GIT binary patch literal 393 zcmZus%SyvQ6g@X4sU(ekXsft$=K~DxluALWLZ#@!n*B5mb|lWgB+;+&BU}kC`~W{j z`~vYdt+;V>@0`QA=bZWYetQRSfb|+2LgQXMiddO=cy(s2u{F5AWG3`oT#o7*ZDV; z5L}zmrt)0P%_ILMQ5xrEJ2G5{k b5Bc^8O~&213N5r5u^y{ftGqgl9CUvGMb}lV literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/java/io/ObjectOutputStream$1.class b/libjava/classpath/lib/java/io/ObjectOutputStream$1.class index 3ec0acfadfeea70bb074183acb02e48d2f2bfb11..d221433b6b9332fd5ac58ecb0de67a3df688b33e 100644 GIT binary patch delta 405 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/java/math/BigInteger.class b/libjava/classpath/lib/java/math/BigInteger.class index c27e41f7593fe643303f3e27ec1e16a226dac037..9da7a5bf9bf7a3da802015895a72bd212f07846d 100644 GIT binary patch delta 18906 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 IgQREw1Ny!@YXATM delta 2348 zcma)7Sx}qT75>ioF+$=;tYY5;2!jM+kBw=uS)7>IEXMJI$x=ngAVUO3ir2(=l4;#^ zvedaro8TsXaf(Tk)))|;k`}TIZkkT})|s}`b~2r`4}IuM)1E6Hg*nWQd$3F#7Lr=}vZp9nN@K5zeGdmCeGI1M|g!n+HZ8RA4`@;SK z8;%i7+*Iiao+2BrQH)8Ov{OnT)cM3nINU#;UB9jtLO45gEflx=VZOAJ)Bi&>Eac?*<8njS~`cpz(Y%GFe#I=2$n&AxZNA}5@O2A`&(_4MmZ+sVwzx;qwXU|LjJH-cJoatfSnNgxcB6U zKd2p@CX%Q~a+LMAc65{<(6mZSB4Qm-YSQLtfOrpvhjc)>Np4ILifod4ji27HFsYL6 z5pIIDwym1Yym~pRHgN^h+Nsv0I*5}+oO(vb!#2E24JO@-Wf9jmtHCDot#%wwSbyIF8!X(Zqs1N1fCn}vD^+3HSWw!=cbgv6uXB>$wpux+A#g5#tNDXC6*>?mW_`5OZ(_gjVdw zA(VkpEP=H$bl^C|uoZTWM;4o?VLKW)5sjRLR!+licA$sTafma~$GIqxIQJ?nTqu<< zDFEk@V@i5$*1|678|3gy{0xTd-h3%PEdjSC5i_Gpi{OrO=I`p*3=5Ybjw_JD_aK$) zk;x4x%|1xj67q_jRygwo}g?U|#z1uE>+HC9BZ*i$h_u6c5a zUABUFk6t6Bmny!r`dt;Fn(LVBs$7{smc-q94JpzF@xygle6Z{a)^27KBKY|zdQGAEJnB>RsCi^hQ z0~_5?eqgaed&o=O$_j}7~*eXSk_T~5$E{Zc%Cod6;^niU*3=d zZ>$gJ8?-8m1J8;W>ON<`yHywMS%y18?VYRZ&gQ&}u;!(Fb{V;v*&+@JyZh9~&b*9W z6*pkHhWDbAkthA%?T(qJPIbrGIMI!>cuwB1y=zSlisazS!stz5G$o9#$T+`+GX4ST z_#HIy57EX~(aAG7!n49;4r4rz6h>`F&jE4~5+dF7pjc z@kf~Ek8zcMfm!~gS}59{u@5iEOYk~uw2vMXYg(-RbU-B(*V1p)j^al8RGlvF*}hJ@ z(=8<0<+n3J@+|ykK=WY{^Y2poXHxs;avi@wF@Gtw-;_?=Qq~fuaftd zU)f!S&WEKVk1nA8>Uwg!ydW^D#JgI&Yop#@Bd;2C)wMhp!Jjv(PtlK(u|qstkZiOe z&uEX%L%MVZ$X}m_d>VvJsv#OuzjHOl`{WLImdO{PfSSq9N;mdOie5?aAhL}Ea2f|u zZuF_H(gI^dfX7Pf|0nREL=8#QQRExLcL5iy0~gTaYrsMEY3a8A20ke%PDzS0$T6Nm zk#QDoQy=@WcXswIt8m9?uFa za_djHXR&KT@aVW0ONcd=CDHqE7#|?Z_)vsjk%TwyDyE1|BUYN=Ktl9SK^JpIx0s&% EH!L3YH~;_u diff --git a/libjava/classpath/lib/java/net/Socket.class b/libjava/classpath/lib/java/net/Socket.class index d0084213b21190521671c0a2ec7762b95de01b56..bc1f7e18de0339e49e337f979e5d17f9e3ec8f71 100644 GIT binary patch delta 4272 zcmb7Hd303O8UKCnz0CSDnPkXJGBZhL638+Wb^<~YR#DNAKv+WDa0pX~!~{t69D7b1 zEY_vRw#Qz#aBO?(@lr=GHY1kle-F+vTynI`&CSXLI|!w$|2oQ%8KY12OE^@e=MK zWUxq0TT`q>A{a7xctyv{c$JV}T2>-TiZH9O@maTxLqFnRL2MSP@Hm1oc6hn zqxg(Zw#Pe`Hm$F1yExtwyV-$b_`-_65;Cuk-4q+&5^G&Eer{V^OFY)9<2e2%V$KrF z-*x;0Ux}YMtNh3CFCC|(?fNS7*z#D*jd2^k5uZ4#=MbCVT~fEQWGc#AFQ#9ol@NU5pv%VrRH;m-F{pD;l*U@ATr75FtH)`aXm&;Y z#kk!@6A9MPRnnW)4l1U}I!&PpvDH;+E2e33bCLMcH7R!n!BW1SU2mMKk{_xG!O{id z6_-C`qgfpLa?Yk$i*d+C((-F0VwsID7B^+o&}HI`X3{<`!2w)N z`>~o1U>&`J^>h$7(;c~JGUyve@4=WQ`%LJO4zzrCsv?9RI z0%biyO8XEO7N&BB`y~|N&MU8FZRvf8HfDX)izB;CRiE^*D@^OWGRKuo41Np8WHY<( zRun3?4FQd$K)Le@SKhdqks$vx9P(!jDH!rzhP;m<9~cqx&*F}}itt|&_;Rpzv)ETq ze$Dcau>51lQ+^{3=lSd>AV&+~pJL7!k9fH>e=c{7gEi4TIMxLxw~}KCob2vHabwok zy|`^x%0@GSI~cH!0e8Z$>_S-C&B^_|*pTn*Jb}{&@W1gbdu0sE$to^3D!3*as;!KqgbeXW_Zx7xY}e;fLfS-;a_Amni7#s zG!#soCS60S;TlpCWbanGhq>e%)_R(?ev2Ttl_Hf8RaJ3ap;u=p!zaerI$AJkwrh~G z5g#=RR@H+{H5<9A*I;HAfq|$6;_3xr?IF+k!B(d*Vg(~kW6P$qWi!~asv#_=CRqmIr)a$b9`jCKFE+iXUJbNzh5!GhnU~P|JAKT1xd!CLB`4j z7;j_v1jBD<#?LV0K4$#vIgAUL@#H41ssDrY%Zz$}QD0@!hnVzhO#1czLAprnA3b%% zT>Y5QjxgG%$XAbw@R-3|9nHB~api~&X=HEm$W>1;)JX)?Qz%rwMnpY5gjhu~Ndsn* zibG@OcWM?`H7jhI9T}Pfqco=>VBQ(BlL91fk6d~33X)A-nW_D|yzlhTY<`iTxjhZTk>({o80u=7z}X2} z2phLlFBA76TgyRI%SEN;#}&M<(}Gx}g@+iiHfcl|&8JI-^y8>BM|euSotMgj=W9$& zv>(=Jf)+&f%952yTO&V3o`PqvT@}O5+NZ&yU4%@nk{MJXSF1*zHVa{GHp;cRn4rxY z;`fPED`!5k5j1XhvW4+|_beCjXh~W1qKLMQ>IbzLb5yHk8|zrhV&rJ`tYOIzyYf@P zSt@=}GI`cAiO?_{;aWym$p|q-|3K-2}h(1NO^ij?xc#I(i*+WwP~LC9Wu|C_8sn8(mPlhlTHD;rrp$ z9$^eD+ml@54UvMI=lE!X5S6U+2?r zz^=U|#z(VhkC-1FM+ZblbaXaXyLN=Xd;*Vl6#3d`7^{6Q9*_Dif15A+@;34VZ01!~ z+7f=sJEpv>_87PFez-YB9h{;~UGhGx4fcD7JgS{Qns!pS%6*;Rp*0eY)~4Xb%RR%T nMV_YmK|zarnWhd2d|E2-%_9mo3>VHgUzl%JbUiCmXx)DRikMa+ delta 4203 zcmb7H32>C<8GhdX|Fh?x&BbPuy|OvTvAYCF2+9#9$Q4);i~_4HzXL5-8SsqKJa_ZV@Sp)}so2|Nmb$O9)a=w`fbV?ckZ`b^#bmtGC*2wO9ySR6LCy@wlbNv<=Ugv0c1pDH-=H))Q>2I;OU^ zx7@I*ZG{a!^s3mQJsz>DqrUBmmC?4gSZm`=u{F`oRqbtNJSVEH)%Kmpwt?`1ie2Jn ztIy?F5$mjPi*?p5U%n>R(V@NDtKucmV;xaGpkfamBxLZKNPA1PHMz)#->cYN(JP?Q1#- zN|Xg?5D#fzZ;Iu%3CerSA)c_!3VcXNZ)@)iw6yb{S~_FPZ3y8WZQ);39K|tVwU52z zA1eNezwyeBSm)I(H#M|Ri?v4A+Hf2v%=n0qwK{rhbaZR9ZN=!R?d`3xXq$?UaZ=oD zFEgD|@d-W^kJ%@?kK;cozR>)rE;E)bh_>Dmv*0W7nZ33SX9&4hHC`8~Z&vrrOHTxOMKvPapYtwQ>hq@HmabInSvtfaLON3Sgdt~ z+$FfjLZb=hz_pq;Yi(3QV^yl6YO%{P$x=c!+Rb=D8CCh05=`Nn*!B9ViQ0=v1aEo0 zIO=c*EL6*p3v+TsTlGa2x|~3ZHN-LtO%-=%L}-S1GoxIYrBb~(n~_U%L~drSy-}sP z$gqOwO0guFK$8_^=LZc*eAZp_jJ9^)NjB_Z!`U2WYbZdLNzQB48#?5 z4(&j~2TjJt%-e8p4@H8{z_SOwjmXljbSE5$D0;gC6wR~hLI@u=Hd{}F3B0Xv;UI-P=xKEX&jjSBh#6X+{Uq%)W-nK4DOV47sb zJjtHoj;4gxbWFz~A$iKOw7tsR#$MmCHaso6%D&zF8qY| zq6zPLjQyrbI^qCS1Na^Bgva9?#h{f8T7^uh8hKI;@}-I5b&s>_Fy2i7-3)~T0~98J zI1F(diS%K9b0~q;i-kSx9X4=qm-M4FktA-IIA3Nk$xJ4xheMhRzto5VsYzF#YXB!a z;6M%zVY05f>-{8uEAwk=2#FGvdT!^{G%V*yK9z;cX`V({>9 zfwTevX?2PVi;^kB-42pi>I*k8TY4Wt&DkIH;!phs)t`GAvX*Q`A>1!S5x?}IQ~6YmD%ho zNRP7pV{HF8e9{x5((kgKhBg=opNR(lxXWLTg!bV0M%Y8UaXgOCyZcbuoc(1l?(R=+ z&IsLBM%uArwpRu)M{E?L-o>03tBl!B>=KbR9B@XmO5s zzM!~Sa}JU29HKaxyQS_SPWhCXPc!r9@Je4W>z4>gU+YXpK95Q;dAT#C8E(=C(4~Q@ zDeB-p^jOJOm}MKXWEJ^xdJ2d;Dc4O77Rk}046GHCvh&5>fOojK%WlTv_8|LEAp0LE zOop8@MWAr}vSGuXLs=KbT@Eo)n2{>smB*l19*dA%ouY1ha*J-t(YIJgBY4JsRUEE+ z1P(2{Ipoyht4A@@`TadJ<9cvS7p6=cSQW1j9R9Fyw;_`4B69m=$x4$iGZce4(?6dZLE0vd5Qz9xVnW4`~vS@T=a{Kx|dP+vFQCQ`T&bQ_#L7Pg?Hrm zx?wt&{4S#%VYK(*myJPglu|*m3JMZMOH?Gp$eKm}M>6wtmQOJFNqFQ_D3U)xP(Ga^ zwI)I0fu78wsC0U{{4E=ufrZ;?hQbGaMbZt7=1`nw z2KQ^FtEK5|?Nx9)at7N~DXdIa36nA!SxOZ%RwG{-2cI$?g~}xeD-$qAnV90&u@uqf zKb-L52DIuej8CrT#)bI0tfICds60#a23ho(s!WGjnZYcxkf+o$!|arO_><0W5~s?l zyROm@<_|@f&j+UG^mjP1kY9*&3Wtp-tyOZyTz1u=P&1?t@o(9wo{y&V+su2)V3F zji$(dcc+931N#P$rgW#YY=`!bKsm_fFT<+5BJK=1X_xp#sFDtdfl!H)`+{Px# diff --git a/libjava/classpath/lib/java/nio/channels/spi/SelectorProvider$1.class b/libjava/classpath/lib/java/nio/channels/spi/SelectorProvider$1.class new file mode 100644 index 0000000000000000000000000000000000000000..530998b6eb375d05e2c9e97c292be1c81c58b85f GIT binary patch literal 926 zcma)4+iuf95Ix&CcIq0EhL$^Rp*J@VHWiPlDpeJgkOEXP>bv8toUPn-v|dNbzaa4o z@B)YjK7fxxj4zc!02NESGdrHknKSd_=eO?w4&ho@VsJ0RY3NIl`q4O)k|&v;O@trt zghx76=PI3w5m!5h77T_?>79f!_TLUK$-{!luu)nw9_32tnSZXtR3tp+qmxLBR5F-H zLJED%&~Ohf7>v_&#BDUN;=n?Sp*;|izsawLT)hj231{dI(kM(WLM4iKZ8Y>)WDLE* z|6=Y_MU@kPHTR$jDxn8j2^sfWxWlklIl%5}cV^3MSs%|+DQ920fzmoiGyjHr6e^*9|_*sl4yd0!mtVvnIUsrQGbc0Ga{ zca2IruV@w3X%c1`&#*;wH0U&GZyR)IXXv#|+6$75WV81L_9s%7;LvT81m44-pSMVJ zDkt1Vn_e_StkPX1cuulNV0OD-vG$R)DuY>CKg>m&RdnZsq94}LyLEK4_Zg2CgR9a7 c5Cc!j#2eTwAOeCQVk-*6Fk*3-!b~M`g)5CK zW1cQFE=)8rYK#<;Lc}PV_!0jN{|Yz82P}wh@lNhN_uO;e$6D2+xbf@nhfhE=LCN?W z(sYh1G(LNmu?SrX7^LYo z>EWyxR}U-a#2vMvvUh8=0S0x>i;`L$8sdWZskTH07%{oXs8GXAi7}JQWEDb=?<>^o zIOPjTIfPdnDf*5zC(W)X)QT_R+E9e6Vj+Aenxobr$E1nHlz1LaMRH7=I9wOM!}Zz? zW_9u+s@27AQm3HLZ?$thojGw#o7^KWq1W>qztgpXzzM`-ZKSFLl`bM=FzIG5J>rk{ zF?v^K@5$_aYIq>N>P<`EWJVqtdxh2?jBn7EUE{<$sZG*-iSL++cxRc+6Ji_mN~&*_ z)>pJ7*6A-Zyos_M*N?4mX@gugKEB4aM45>)cA1%7jcmUxjgF9_9hVCBOVd`YsD!6z zJfoTy9OR`edBaiO%D?bhmcEm({GL9R8J0Loi3!RakSbHQtCoyMK}HqKZ|@8E5)H|< HNtEj!9DSBv delta 541 zcmYL_OHUJV6vcm2JME;Miq!Z@G!P_B=%Up~s!~Oy3Q9$*MJwWiv5aMKI@7cbi7Pi6 zSGxHd<0HCJLy!$(QV19y8%_KOF8nCQTQ+WPa!<}Z=iKu&zS_UXa1j4v`f;)ASQ=C@Mg8Q{mwH{3Lj1Y}5#sh0OWpbOc+863g*;K;Z(b&Fe;`r%;1Z+x7+p3z(vRfluYeTLVW={E`Y4s;m>>MJ< zFa|l=(f3IB;qd3!13@1O`iLDoR#Btx{&zv-Q>IqP{A412WQ~D*@&{%zKGK zWj-gw_$#8kl#H(>;~Sy9BguOX@K)#x9A;5I_#jO$N~cRw(=y$1YKo*up1ZiRX;ftf G@csevyndhn diff --git a/libjava/classpath/lib/java/security/KeyStore$1.class b/libjava/classpath/lib/java/security/KeyStore$1.class new file mode 100644 index 0000000000000000000000000000000000000000..48bdcabff58e170b396017445c3b5dac65bec3d1 GIT binary patch literal 812 zcmZuvT~E|N6g|UsTPTHHRzyTal&^&c7UJU)5`vN#S0yRoeYQK6fifl2DM|m8z9{j* zAK*VQ@wXUnKZv`FO{VwG$2s@hGxPJ$_a6ZEu<2leVex|B@J=FvR7;a}-igdNu@-B4 z4lIUdu^Vv}c0TqmL|`1)49laK6D@CKBtkJb42+BwgS{`6GzSc|_SPALbrcVTiyEdq zIGAK;^rR9W(yPAEr@S8thE^{Qcyz|K%;(jjWzJ>7u+$r^_fKP&D(I97&bPP9Lxoh| zXsN>PBpxu#T#78oJK8bXHHmnLM-CPk7DhS!$^Z|Gc+4;z3Ui|4YoSfXu+hFx{-1i| zGD^p~E*PGAXkw1R_2X0r;+X6rX?Kn6JZkQcZiuLlrBYF&D;N-ycF$1{{z- zjW;TY;)MKoFU)y7aIku>`8ypR)^m}w)ckAliKme{CC?bVw@L|p6!9bx30A0|8jU)= zq8bglQJPIr_KG5-Sl|8z_X{Nx@aXSS1b)Gy%^AwP@(^axpcy?f%+Wt5*rk{g*sazr z=08(bGT6oH?;*5ZqML_=UaHXR6}rCt6;H;&W$9dqg=YovGM*Q41uu%#msrCFW%+&O HBIx@IC<3?I literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/java/security/KeyStore.class b/libjava/classpath/lib/java/security/KeyStore.class index 73563ee6d7a42f97ea23ab086940577252e1a233..7aed4c09ad89d8ffd32bfe5f2dd047342c4b357d 100644 GIT binary patch delta 1469 zcmZuxU2qds6#i~oH=E5(YuYqn23u_afxsAHcyUn1ip;cA87u{G#u7r9JN@@z?Vdyj~TT_Sg+BSFie~9TqbQKSQ<(g(a7|PDL^|<0`IDmd_SlXDBcYFrtC-IkW0Q`U+XK4LuCwMNlmk3!P5oCdc=5mpeau-fU!nQNz6F5Ph)|D^DZVg{Le0SD@tA zRrp&el!ejs%tsDA`;dzPTK|DU{E3I?gcCg%cC3LyI~QhSt!Q6J;Pv z(Xbh>k&+8rsJAyfCHdQ|gh#}se6J%#aN!L!n6MpI*whTzP8tNMCaka-8L-_nBn<`Q zUfA14xum?)=nYl{&gPkwPa{VF=a4IMmCoIXM(mepI+In%x}7+HCUW0}-86KndyMCO zt8@)Cwp5h5y$`2_93=FCDdaHe*+l=426eUD=lRG=uY;W>rH2J+x`rb-N^}=K5q)&y zr&h`)sBE*Wdr{iO<7lCDW&3id4L+n?Y9k3?DxJvIsIr9}IAL{g$NvUG9UhibH2>1@ z&Ss*foJ{q5pS;+fzWA)@EA;u#SwV;Ht9fxq^D`^FEu)E_55c~$!n!hGU(shNGyK|G z&`k*|k{&WL;9Fdy{G~M-nd3t@&Grq^L=|=|)+vjo~{4c4C`!>SJyD1oq2GdKo_=P={Li zP4CH%3!K0)*+pd8P79ooqeUh^FK~h0m5Gl0vcMIZ9ugDz4S}1uMy2#?ahJh8K7VSy zzbNP*n3r2x5C}zzg2l8FYDM7ZJ0#vjrtE_v1 zOj5XC-0enJ*HJAow={Z!4TWHNX6@b3l)f49+KqVa2G(J{Qqxy;3gv`>4X7c%osiTl z<2>1eH(Al+ps@lI?K6YX<7hpO)(O4EMC&FniGW+FL}GCv7DVa zN`0k~BM&>!Iyfz`(i;c2NR@vDE*;TrJ zs>18m1Kn4$R?0L+rrpAAI=k{hBR9ObLs#IQtV&NC@xW^2M@r+RVL$ht#rhH_HEzNE>jnEdgTOw^51WemNF_BcLcQ=>x)|o_2M!HW zY?n$@HIR24Un!5ra*kOlIeBy3Dk`k-FKOKavN5DLcrIEf+HTG+m=3X5?FoWcH+gb# z$um7Wx6O9PZFfRJjVZM6GfP_?r)~p5TDRD)?e!~c?FpbY_!HQv12j0198n0#ohTHR z8CZf2h0^~BdX7Mx+wn0mU$_Hw?qT)nZ6X&dIx07~5EG^K}hZt4Qu{ zHxPp%t7{A_MjH!>bgC3+&_^<5`Fx^H6{=+0uyEYA1j$$9R;FL7c*64Pb*OMrHDI;g zRo~_DHaT8z7!CPapqB`C%~ytt*ypY*AG=N-p1?zRT5i7^b@AgP1_TTwb_obN#NTxQ2-D-WwDwr&#d@+g% z*kSDBl$vnMeR?nyOmAP`?x~VzO>$OIy~l7G*pH8}qI4Rya7vQm+phCn(NZbdMo}1( z%!c6W`1HioUZ&%pi2kG%@S3!i>09@*!bv(=$|`i7Cs}Ob{MKO~3sz*cN3-cEo4@Or3jgEl8e0Z_N07Md z#ROc+M&8U1!B#ZMyyU7$rlo#zM(8K|y?(OW>nG<7pE3fLpq>A5z76rN;6zjF(n^I+ zVChTx>~fJ26S$Q(_F@HB3I8NkqLXj3zlyh&UR_AtO&a;43bM()7VgD}+}jyyUI2QE z5O-?mjsDRZbgTv)gAYw08GhP?n2a)nsF2@gzB;vB2LQ;XPT=Cyx>+RBr?D}Wo<(=+ z+vuLd>hv6vn_Fkl(b@VkdKG?z4bzCELbKQ;l6NT_J@ZWAo` zLAd$**gA`WR7cA!1|>kvkN|C?e&8NjaxZN=%&~eugZco&^B}tL5W4X&`tS%ga@~(d zF@Pi3j>pLABW(PS!^9KX`)ipxT3+)$Tk}3!^FCYiK3nl#Zb)idsH+R_!?g_fb;L0k z5npmWCGB`Wlk6wEk55Tg3nP+vk&7nnhM&WywJCC$2P&qtV+VFFa5)pa{KA5lcVW14 zc@v)k9HZs|KdeEB*#?MMP5%wJaRL3^!OK5rxLh?}$pEfgKER9#nR}^!(==K_$GI4s z#tJ^VUtxl0v}xVz=J0{zCo!7h;+EsJ2rbw2{3+A)Gp6C^O#3ge8o$&^g?I$6C9fAB zW@5!%b{Aj0dW-5=3u;Y#{3LE0`YxQCKqgdL$PcBbQ>ps@F499G~W z{(!vA;lVjPB8NLd`gUmiIYiU(&x+`9NL8fIp7~xnenez5virEKY6cD-#pNgQxoLEz zPhvVXhcAeIGgvb!&anFAWo5%!JE`RwBmOku#M?PM`yzw(DqhDMc)mi=yU1tYH)Qi~ zu?)XsO}xr4tl#sS`46nE*O0*0h9@GDaD*NR$I2yduXyr~x9ZDpvaYEw(q5}jt$JrMYzM)C<&Hn&_GXRqS literal 3530 zcmcguS!`5Q82(N>WyYBcg^@~&0^}>Dt9e6m13WbH+%pGQX)=K0uwma6|pGmn^!nIS$Gg70boeUzNFk9bo%;c8# zwZq#eR){20Bi6=jDwj!E3iErXqV!NWpk-YORcR|TnpJ4@UFzqtoz2ozPs(vTqr4tT zIA%8Mq|6a3qcG1?(zbg<(5nT!7fxsFWWr9H4zcHN@PikGyg4)Lny#H#Z6`;e$qq^5lT79|E zVJmZyIqa}5(cVIjy8>qqzSsiO2h)@`fI3bARxu43&>1tJM1O_4!u@GFL$Lb`=2@3bp~wM?wT zer(HHX)|NGsZ1CbU?7MKIdiupbM1P}rA>Eh`@mS%wMIF4Y2IZz4P1na$xB^EeK;mX zDdSzZb=Qx5sBIsYV0=9gR7MhZ!@?4ah&hv>rXIZO7 zhsiztd74tKrO5&dwiC9YIpFQU)ryESq~EMPq~hHw;D_1;a)LoIhA zucNlotNFB9p^=ZyBb$^}Q5GR`Yh9pn8fcdgISswkyIO>f6rm&Vpa~?ejdmd-j|2iV z$UhNzbFXqI;djUO;+R;=1Qx{)pgI~G)&^SSnC9uVs(K7m{k{;MC=u`j3Ze2 zGTJB55v!@1KxZlTHktr-(#Ul*dp+Nx8xbY<>aZINaSImVR&?^a9JgU5Zr4Gq@*F4z z(OnFpyBI`wF^KMb5Oi5yIwoKamJ!dZOFO@k*(y4}=xHu0ASLnA{h&5yco*{K=HMip zJdJXbUwO~8%BNsOUU?b6VmU&~9bTIJ5KojrM2hyin23X&Z}2NWTc%u;fL z&c%5;I<~WCO?^T=vQ*VZ`}U!~_eBh@k6yADLqxyqe98SAm>G|n+^rjj5toxmB-X`6 zzK**lE#F)wZz{>-(XIJw9S30ZcE|obFyql}a$31OFpksYuqLpiFCKMx*!nz@3S30D z%We|cNn9zHYXVw3F!DIU@#xiZv@4+Ur;q*pQarj-&c;Q0ovexuc0P*6eYoKfMB|dR zN$e8;#!)M=uq|Y*{B>E2_O-^cOz5N-GfOYt#> z?oIT8@|MLe1$9VHGAkA+=Fki2jAgIe2-^%z8^o}P5g+r@e@A4 z&(!{f8ozS)8~()aY6kw$mDJ-w)#fWXLq%~X?qUV!ssQdLY6a1k;a=RwYPziQ{dj<# LtMH)a$3y=B2pDYF diff --git a/libjava/classpath/lib/java/text/DateFormatSymbols.class b/libjava/classpath/lib/java/text/DateFormatSymbols.class index 8851a64243ad9d41d8c870736de3314dd48fde67..7a367e68d9f88d7e4028fe8675187da3815da8e4 100644 GIT binary patch literal 11437 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 literal 10132 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 eYC7XIqh)0!g(PjVd__?zqmhKEL5MXg zyQ?74-E1q(iKHN+!k}%gYSpSB+5}M%oi_u9w0P(I?*G2?!8!MC93RBd`S#D#=K#<| zM{Pg|F4^RDJuKbKa}W}rtt0xmu@PNRNXH02A* zX2LQm5L74|J-O9Ig7#1`LdN9Sk+ExfEHXTyBbciq)e$?DB3OF+PWAWLs9aw0)SWGZ zaU*w?fS>ToAfG^yrdokon(74>r>Rk3JWb64r}2gn(IW6YZW$C1cpL`|Y7=-82Nb3b z`P=ix+9M#Fa^zfZ3~=XYPS#gEEGEYxtvp%~$i8b-0rx zhy2tv=}$+y!B3f-#{}h2L0L>@&d3AhYDHYTfjt^M_>yFi@n8jJ%SXW)?%-o^2y1{=gHI*P1Q0qk)-Mbyxt+yB;fH5p-w7c zZ*xNe7JS^qjLA8cgx}kLIPFH3rUYF2CplA+91Pcb{R!}Km{BcBtqCaHKJ1lC;RbA9 zeHUIt|32#E$>q>h>Pk&cqZkF5ED)j!_y9{_h0~;_wr2yKmlcwWkxG9z-w0U14{)E! z0W0{5!l*(f)qo2>vzA4(V5R-w8kextz(K(QNW|CJ#oNNzC@FjtuNfPLo}j?Es&Y2tEJ+ delta 34 pcmZo-Z(`q2#>8kaxtz(K(PZ*=CJ#odNzC@F_6+Py4wGG&?Es$u2s8iy diff --git a/libjava/classpath/lib/java/util/HashMap$3.class b/libjava/classpath/lib/java/util/HashMap$3.class index 631d77583b417e774193148c0aa239c3a7245491..94cd2bdd37f3c8c638a4d144eaf8298192ed4c5d 100644 GIT binary patch delta 67 zcmZ3+vy5kh9t&gSWPKKU#@NaEEFO%>lXtM#vt}@`Gi3t#qLT$#4H&l`%*&RZQN*S^@w?)DS2D delta 67 zcmZ3+vy5kh9t&gmWPKKU#^}lUEFO%BlXtM#v!*eyGo=IhqLT$#4H>g1JF~_K7BFx! W6*BNL6*EXOl`u#%l}+BnS^@w=LJ$%F diff --git a/libjava/classpath/lib/java/util/HashMap$HashEntry.class b/libjava/classpath/lib/java/util/HashMap$HashEntry.class index 28a0f2db2f486326b47ab256caf6c75a91654775..b05ed91295aca215de0ea41968e277812f452595 100644 GIT binary patch delta 29 lcmZ3;v5;c}3p48`1~!JxlR24-823!BVGd(FHu*BM9{_)g2`&Ht delta 29 lcmZ3;v5;c}3p49x1~!H*lR24-823)DVGd(FKKU}U9{_*B2{Hfx diff --git a/libjava/classpath/lib/java/util/HashMap$HashIterator.class b/libjava/classpath/lib/java/util/HashMap$HashIterator.class index 1121d033ec35e7bb085603051cc6db457c991870..b0bebf2eb9cbf7f6dd51a95dab7c805f82f58fd6 100644 GIT binary patch delta 139 zcmcb_cZqMqbr#W323F=E22N%N20>;g21#ZY1|{Z@$!}QV7-J`Uv!1ZcVBllUWDsM{ zVvuFdW>96$VbEvJWiVmRXE0|jVDJXg{>()T;mpMhG0Y_lDa@q|napJj1LI+THCxaz(7lSi%_hc4!KL7$S9LfLy delta 139 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 KtPoe2;{OZcn7@7i diff --git a/libjava/classpath/lib/java/util/HashSet.class b/libjava/classpath/lib/java/util/HashSet.class index dc57e6058c3e4806804c51d0101b4b31f09aac6e..3e89bc110d3de0df208bef4b628a439c5e180693 100644 GIT binary patch delta 25 hcmbOwKTCeY4GuXKcu zX|^mJe{G5&E=Fg(L@iO{CHsNSM0at^=B7-xseim}Ugx~M=nsE<@AI7Vo%ea4bKduO z$=NdX)Z;@(0TdBZAP81DGS<3x;wOf+>as+8JW>^uMi`@J2jBA9h z2?{jq|E%1dmT)cb>_;Gp1?5gA?t}0WwnFcr0|;n#N}oDQQv;J+rRL6FkKOnjd(eY@ z=*0mHV36ZM9K#`;#1Wig_8pGn2YiE4)_?hV75GucDY%53q)`K$)QB9KFKw1tx~2RlhE!^oODuItH?;JwJYlI))-hYpcXUg? z^%dG67g+~$Hew8ILMHWM9BoD!^`VOT(MVg6paHhNRZg>2E8Dro4!ObhrT-jP{EfAL z=chOi7hS+a8s@(KfnvJI`6GCP{=`iB3$^q&>gf`i=rR`471?TUq}!wBf3;5#f_fZN z$uhdEapWsLD55~V=cuIDPs*1_m()8Dg%?&1yAenp=l<`9;Qj$KJSQ;rFs?NW;>NMV=w}?L)Rb>SuE&|g&1o)m{ATD}YOoJ_uNq9^ zZk^XP8b1)^^d#|L|C4jxBu?&OErAk_9_X1aXFqZFlYmLAfL*MFyHa$)D^_8W=te1T sR*2Ql2GjH02#-)Rr<*VZA$-d=E%5P3rLwG>EkDE~9$>=bXN8_T1q9;vnnd}*PA^x;CA zDMj@V5n_sxE%sDlQHX77Sw0%&gIF(-buqq&bMN`?Irm<;L&2wo_JNtcCjk7IoCAaK z$as{e(|0afw%Cp^wQJbcWLS$~B0`J$rQY6XEz9mkNe}9ZWy)R_Q3{8I92ueW=s*iP zaRXhri*9|r=)nU#L?0gG5tgcc-hUSa5Y)_u`#1p?h$e)j!_k)h9I1Grl>-RlB{nG5 z;1#yvHTL5T4q#CB#jP?&V8N*L$5omW8hw*Idz$#2%WP9R<+S?!gcs9t+*uQYKT6Fg z^;fAGrP9QV&!t83SMF z=JFDpyo~w0f*`M=lC7xbH8iqK=WmzTgs^#2``nTp39W%4?fO>z-@(iGNZ|+g_z^iA zMgd1uKZ+Ingq8e^Dvn_jzo3?1v6bTzNUY}M>;`ud7aIJnVG-@K#Db(O(+AVYlyFi7 ugVLTI|GxWu7p+-5>Z+**~0*oLTs3GNxA5u7k%ObC<2WUL|> zMG#8=e1DkM0TuBN5sF1RQsdIp7&S(XTilmw-51o-QWVtlVxUmL@*ek|``vTC^WE>> zEjio#uFg064gzC%^pk6i(`j#r*EL0jk>)mA#@IkfO?YLvpf((Spn8qO? zrJ~qHf;NNSI4n4-W0B~pS<3{kRW?2lbZ|r%_}}8M3!v~%1bo6f#M zZ=lS=x(rToO6V7^uaCwe=2m-V^g|_mWQA76CI@E(UsWt#@Ndte+3zLyC0c^Fxaj7* z)$)Rn>JM7|y18ieyCjUW#8(GOK1!qg5?nF3$~D2+7_V&X^+m|^2ZJA~RKIShK^4Un z`s;}k+_FsjUGvQ`cJI`nC18_aQyP^N4aOqsO=G3-+5hO!n)rRD6OQ8I5PMv>bB}u;F7gn=CAI=OMI_{&){JDRPtTnTZ>GG|)+*s^vA&u`zXS3O5 zOp~p;<2C*6eA#7&+%sj5x!pZOTK7D0uao9>TpS^T4l+5)V2&}APIBmC1gG$GntZkC z3(inT4@F#5`RAF*6%~I~MPFC3H>lVA_1xw=?r7tC?BXG9JXWTsoa33I&lP>C(Vx7~ z_;3CZ8?R)Li`O!eHGZl%54)3KLh zxk*k~@QEa+cem1AuE5#!^rd?_SDNSPNYWFsP07pkWhJ?+3(s{6$+9nj~*BJkT+PhwlKC;wQEM delta 388 zcmW-cNhkzh6vuy`QOsaQGZDpwXy!6ml7ov<(=gWTONxjj*^-(vTwGk_i-wZqLQ15B zY-35*h$0S@lE`+jl$w0>>b-xzxAgww=CLT>hHl~VpkosgTZFPrI6FkJOB8#=aDbUZtQ?WVF)5sp#<{X^ zih~O(xTJBH(T?5Ap2 diff --git a/libjava/classpath/lib/java/util/zip/ZipFile$1.class b/libjava/classpath/lib/java/util/zip/ZipFile$1.class index 205797c567268f098915202959a40f36534a972d..9a02888cced7b00573b1f14e70a859796f335e12 100644 GIT binary patch delta 35 rcmZqRXyDl3z|44ZvLkba;8_L^#&Zn3jOQ6d7%wm=GG3f~irEYRwGj#( delta 35 rcmZqRXyDl3z|44TvLkba;3)^C25dCTUm3MgvmnDj zO_*;k`hjFE$}DJjs4dd8@Sl(*qNuEJlLS$V?&@$ahr{{Y8}FK;^xHym^-<%oFq zBaUe>nGQEIu$z7y;6Y^akaC+XMz(BoRG(@4@)6GhB(V^CS%fqeBa0;{VkzpFk7kyu z%7n11Qv6j&VYMU$R4if2TO(5~cCilW45EPbILZc;@|4}-G_>GpF@})GGbm(O;#v{l zS&56Fm2Ei3c66}=y}W=ScH#!RFv4y`*@J2J;yEuO#y-sR5*Ed`!YgWNdn~yh+c+SI zgGl97ff>SaUQ@%a0q?M2+>}Zq@NrZsjo~oIk;4ghC)Jo0Ht)j8d+_kS z+Ok%C4`J~Ua`{-wKS2ebO4AwC@EMvoiwIxXYl%Cx6SmmqaD?+H;{t-B^`ecUO|oz1 zE3v-Dc`l-dOSsH8=;t!7a|O5f77zFiGorIxRmDl4bKk?@x`2F;D(mp_qg?+JviVic z^$jK5KsCS12Yw*LpOU<3*Y41?tY5;gg+2U@ef%Sj`io=yhky>8)HMWkqD40l(&N#t Rn`+S0W>_%vMD@j!`5%*LdK>@% delta 546 zcmWNO*-I2~6otPzoSPGznlt}(d6 z{Nnm6rf6Hd&r`F-j9V$xHi}hmagD6jc8l9V zlbUGNPCC^>w^})@Hjb;E6WUEg9b8o>_q2x*b@52ujGFJI_PMcyk(2|(>Y!CT#4Pn# znO>Hv&-Dj;!$+;gF+=JnT?2-6k{q34p$1)Qs3UNOpw5z_h#L$w2F?+$^Catn`w@Db zevyzaQ=lsbe~ofoH_{ud*G+15i)P)4j!&KLSu7iL4 z)2=6U=_&j5j2?}0L}Lu-IYWBEZPUAY<(4E(6uiNwaVzrHP{s-Con8Mu3p8Qp`oJKCQ@ZM=V|)L(=8N4-}xcw^Y*jdgv= OExves-UK(9ockYPdV8M$ diff --git a/libjava/classpath/lib/java/util/zip/ZipFile$ZipEntryEnumeration.class b/libjava/classpath/lib/java/util/zip/ZipFile$ZipEntryEnumeration.class index eb721003946d9ce986ff8696e119db2eb1464489..d60a924f8775459d01d8fe3c64f7158c9f189c0d 100644 GIT binary patch delta 33 pcmbQrIhAum4KwEt1{TI&44jO=C$}=kGX9_ZnAwYweX<@)Ism-_3g7?$ delta 33 pcmbQrIhAum4KwFg1{TKe44jNVCbu%jGX9zTnAwYwWwIViIsm*C3ef-n diff --git a/libjava/classpath/lib/java/util/zip/ZipFile.class b/libjava/classpath/lib/java/util/zip/ZipFile.class index e9ec7f76fee2385b38e9b9ba0b0d4ed1738c28f8..6ae8f686c5a153c3b5b5b7e63d617c6fce3be6f3 100644 GIT binary patch delta 2348 zcmZWp4RBP|75=_tf8M@*+0DAKDNf=aZ%rn8$`V7#k!${e*;{Ve>gfM+!rnV!;AM483w5XQGXp=j z4eD~-x}xKz{z1_gN8DEXrGa0eo6zKJ$sNg&%;s+l{1)@3F0>2}4vO<0(S6Op@1V)c z!@a$tu44z@Fz_aRuagtDS9>cBjB*Z9T-l<|IE#%mWA=m9L`|idX@u1MIU{D8bq4D(S5n-UNVdlZ z6B<9EOy8`+G#dfk-=-!xUZF>O=oAhi4<) z2m(B+P6qa6QCHtItH!olcx-jd!nOvF>2ch(895V(bmi|&q3*fNwk~vYgEvEs49&?< zpU`a${tV5{(7adx`=-rpZpe?BehZUL1rtbjg$q)6p(zj!n7V}n!i-G;92&DQ_M$9& z(~F}b=S<7TMfO@aY36Q0(9E6Gn#@?(wD5~?z-F(Qd0XHM2V!QPJYwP3qMrW@Uafi> zd%^|bfQ8pP@6l*#rt7iu@9maG%))%3$1zXnKj6nZh~PBTmf*^<_vvL84Z&y*eewtB zXAyH*#ym!uF9<1Mz3ev8WHW~Wvq%nnh3)tY zG`R2xuf!>l+%kyr@K=#E{1YeeH{l*?*o(i5q|=8zcv~bd1Nf1|tHEFqo{*?DmZ1^08yDG&3buc_&h{ckJFr#_` zBVDn*oRz|c+**rQSlIZH;vx8@Zx(me#8Rw!Qi9smDY%f?faPctud_2~E|=1Pcgpd& zB>t=7zCd^_xv(IEZW^WbI_+hfBHsDSe%o*D~Zl5p%P5_Sf# z-5v{JhsCSxJKMHiu0H=`>TFWqi&S_PTKr_@jyf5MjxCo$K#y&?nf| zRTXxIJ*J-Gid~l+xKS*cn#G%@J&?Gk^0nTMRJzK+CnaCo1f)L@to%@lx*et5fm-fF zljQk2?#3;A3jKTr8))HM+NOXXzvVma$oeMz+N^~(_I{0N~qt%gfXErUplpH<%|i7Y!MnRr_! p!#gq)&RllMf3aIWFS*O&&0H(INHEkU-2TP|JGaQrIpJ~W{|7BD5{v)< delta 2217 zcmZ8h3vg7`8UDUxlf8TQ>?7ISBsaS;hCm2e(oH}@6VSFKNTDWRqsB;;W|B38Aqf*! zYTDXFD~>arv2~8^6i1~xmC^?e1icF^E+7_KTeaG!*axk()uJsGTN*9W|89aX-JLoA zf6jl-|NOrD;?mPg%;!EhkOk1hb$iU15h)Pe{TU`EkWn~@r*)q(*K>#{)tk)HfQc*? zxXUvNNA(`V9?#;q!jJGxqHuFE)i&DaTAx$+iF@RgqprcvC*8B>6<%=9iri}>Lz_mE zn>Q!>FIa!3@DlbArdZoocU?C)B#$Q0>%RPj!Y|QB7-Cy~dulXy_-lpVU?Jz_UWmV; z`D7X!qhheco&={I9|}e4rQk z6NOMD^YjLP?JN%qy(}O~HuP@kP283m+?Z$^*|;&;ml_-yR`k-)lm1#`il#y>{raRo z#(+NOuc6Y_Y7L9@sA?;;6iZpAGpcEhO)z0H%1SR|L^$VnWAE@lqAN8zI6R#rDivoT*VIeL8o39>fjo^D>TdhX}9Vwx9XKrb%lO6w8+z= z@Yddj@beyDC%mu#KB@Dq19>>34_Wo&+Z{Z5W8A^cW}mFvn$6tm&#fxA24vmY9L%ku z+!~ITVBgHUZOuh-E9l@rYjFnI9=kY=!>tiJV)+~#5#irjf@jAa91}e-qyJcRHLb73 zPi12|c+mJAV&}c1*+a(TOwj-|ixfOl{K|2z+!V<*6ujG2sQ+TERNle-gy>oaK7CrWP~KTAK(Q8AwZ`WR$L{uaXms3O*|SP&6mlbkFS z#I>=Et69#qv^l^E4$H00tmK$rY@AiRht>Rwy!r;`@L@sMcg5>o)}ck>9Y(}$En2Ze zb|F5FllUVzjwrX`Pk2qzs^xw7vuGaN!NqtT1`6>o%kUS`yx5QT@K@0c{1f}|hDaaI zViIqPW(w7QfWL|6XFhh|lxT`Rd<$=h7GMYu;%(7_wD17_E?S6D+=qW4ZXhgNpK!U2 zA~xZ61Q9|pmtqK~B~*lC2;d#rmFO+y{nZOmAjtP|5ll%k$QHTLigH1GO!l*RrGCG> zif44xZYX{CV!KVL4_q#euhzHNWi9`beMxQ@|3;O_b;t)rR@bL-HiM}ik?%V=zh7F2 zG=00fGgLik2K5tmdCO{e*d;-)ht2L>d)4&onfB(npC0j8As#(qshp0*kUnphtFtaP zj>B7@W?0u$%(MF7Wl~x5 z+0KUJsEbEf?y%xPTsA+0(VqA|UY^F5aKhni2Vb~w@fbob2^!*Q&ebnfR8@{iA$LeO zza)_-a5?Y965fRl-i=P)qXW@+hdYCO)=Ol!L?7BwEF{eX8RvYF7fX~Z^J)b$erfcq z53`gc8#?DVOlP3CMyo1c+3Miyc7c#tDAxbLHpDWB_PAL`*r<<0qjMLy)}7lgH7t^9 z8XSC1ibj%?wxd)Y}EN z&oa}zX7|NVtHq;bIJ|borBs-oW9A08CO#&e`L=ZCalzOQ8TEH$COc8Z?;*kOqm{d` zf=}SH+>Jp_Vhi`;t9)ved|1=i&VAUy{g`A12l+IPGK-Tug4cKyZ}3^X!yjUb$7t~7 z9CkKMw`>MG(mWUVx~ekTeVsJlg9Ogx$XbBy_;QX%g~G8f=6K}AQNgauMngza%IkT9 z3~5UE)h#FH#lg}3aBvBIe`W0zuU>-Nf|=M9zCJVqxDJsnBSIHO>F`E-XzcRhNB{r; delta 299 zcmV~$O)CR%00!{q&+}lj(dI4fU8|xx$OgJYeUx7 zL>31kizeo^)basbR{VZNSJ4&kvTh%MjKRt{9892%Np$cCULIqZCzxOg(@bNI83dWd zGEcF}Gi>l2Tf9JsIqdKf5ndt6Ys7eiL*638JLGteJo6~<0q=Z7i3R-f31vPT^2ONs zYFy2HGj4vEZho2pew#6tOn^VhwAEvRWw`l=P61vS_*H>PRU#l^R#jL~H5OHa6&0Y!~S00000 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 5c70650aa9a33ddc18fbd9b2276f4e8b6499b9ee..76409493a57567d75ddc4ffa7afc05be2db5ea83 100644 GIT binary patch delta 140 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 C`^Llo delta 7285 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 diff --git a/libjava/classpath/lib/javax/xml/stream/util/ReaderDelegate.class b/libjava/classpath/lib/javax/xml/stream/util/ReaderDelegate.class deleted file mode 100644 index d8b79febcc42a8b7a200ed14669133f2610783b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6601 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 diff --git a/libjava/classpath/ltmain.sh b/libjava/classpath/ltmain.sh index 2d341c92aec..a03433f1789 100644 --- a/libjava/classpath/ltmain.sh +++ b/libjava/classpath/ltmain.sh @@ -1,9 +1,10 @@ # Generated from ltmain.m4sh. -# ltmain.sh (GNU libtool) 2.2.6 +# libtool (GNU libtool 1.3134 2009-11-29) 2.2.7a # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009 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. @@ -32,50 +33,55 @@ # # Provide generalized library-building support services. # -# --config show all configuration variables -# --debug enable verbose shell tracing -# -n, --dry-run display commands without modifying any files -# --features display basic configuration information and exit -# --mode=MODE use operation mode MODE -# --preserve-dup-deps don't remove duplicate dependency libraries -# --quiet, --silent don't print informational messages -# --tag=TAG use configuration variables from tag TAG -# -v, --verbose print informational messages (default) -# --version print version information -# -h, --help print short or long help message +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --no-finish let install mode avoid finish commands +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # -# clean remove files from the build directory -# compile compile a source file into a libtool object -# execute automatically set library path, then run a program -# finish complete the installation of libtool libraries -# install install libraries or executables -# link create a library or an executable -# uninstall remove libraries from an installed directory +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory # -# MODE-ARGS vary depending on the MODE. +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # -# host-triplet: $host -# shell: $SHELL -# compiler: $LTCC -# compiler flags: $LTCFLAGS -# linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.2.6 -# automake: $automake_version -# autoconf: $autoconf_version +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool 1.3134 2009-11-29) 2.2.7a +# automake: $automake_version +# autoconf: $autoconf_version # # Report bugs to . -PROGRAM=ltmain.sh +PROGRAM=libtool PACKAGE=libtool -VERSION=2.2.6 -TIMESTAMP="" -package_revision=1.3012 +VERSION=2.2.7a +TIMESTAMP=" 1.3134 2009-11-29" +package_revision=1.3134 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then @@ -91,6 +97,14 @@ fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand @@ -114,17 +128,28 @@ $lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + : ${CP="cp -f"} -: ${ECHO="echo"} -: ${EGREP="/usr/bin/grep -E"} -: ${FGREP="/usr/bin/grep -F"} -: ${GREP="/usr/bin/grep"} +: ${ECHO=$as_echo} +: ${EGREP="/bin/grep -E"} +: ${FGREP="/bin/grep -F"} +: ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} -: ${SED="/opt/local/bin/gsed"} +: ${SED="/mount/endor/wildenhu/local-x86_64/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} @@ -159,23 +184,26 @@ basename="s,^.*/,," func_dirname_and_basename () { # Extract subdirectory from the argument. - func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + func_dirname_result=`$ECHO "${1}" | $SED -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"` + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # Generated shell functions inserted here. # These SED scripts presuppose an absolute path with a trailing slash. -pathcar="s,^/\([^/]*\).*$,\1," -pathcdr="s,^/[^/]*,," -removedotparts="s@/\(\./\)\{1,\}@/@g;s,/\.$,/," -collapseslashes="s@/\{1,\}@/@g" -finalslash="s,/*$,/," +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, @@ -315,21 +343,9 @@ func_relative_path () fi } -# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh -# is ksh but when the shell is invoked as "sh" and the current value of -# the _XPG environment variable is not equal to 1 (one), the special -# positional parameter $0, within a function call, is the name of the -# function. -progpath="$0" - # The name of this program: -# In the unlikely event $progname began with a '-', it would play havoc with -# func_echo (imagine progname=-n), so we prepend ./ in that case: 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 @@ -403,6 +419,13 @@ func_verbose () : } +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + # func_error arg... # Echo program name prefixed message to standard error. func_error () @@ -471,9 +494,9 @@ func_mkdir_p () case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop - my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done - my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do @@ -523,7 +546,7 @@ func_mktempdir () func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi - $ECHO "X$my_tmpdir" | $Xsed + $ECHO "$my_tmpdir" } @@ -537,7 +560,7 @@ func_quote_for_eval () { case $1 in *[\\\`\"\$]*) - func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac @@ -564,7 +587,7 @@ func_quote_for_expand () { case $1 in *[\\\`\"]*) - my_arg=`$ECHO "X$1" | $Xsed \ + my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; @@ -641,7 +664,15 @@ func_show_eval_locale () # Echo version message to standard output and exit. func_version () { - $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# // + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ @@ -654,19 +685,20 @@ func_version () # Echo short help message to standard output and exit. func_usage () { - $SED -n '/^# Usage:/,/# -h/ { + $SED -n '/^# Usage:/,/^# *-h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" - $ECHO + echo $ECHO "run \`$progname --help | more' for full usage" exit $? } -# func_help -# Echo long help message to standard output and exit. +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { @@ -683,7 +715,10 @@ func_help () s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" - exit $? + ret=$? + if test -z "$1"; then + exit $ret + fi } # func_missing_arg argname @@ -701,29 +736,6 @@ exit_cmd=: -# Check that we have a working $ECHO. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # Avoid inline document here, it may be left over - : -elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then - # Yippee, $ECHO works! - : -else - # Restart under the correct shell, and then maybe $ECHO will work. - exec $SHELL "$progpath" --no-reexec ${1+"$@"} -fi - -if test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null; then + case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " @@ -2014,6 +2078,11 @@ func_mode_install () # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac # We need to accept at least all the BSD install flags. dest= @@ -2023,8 +2092,10 @@ func_mode_install () install_type= isdir=no stripme= + no_mode=: for arg do + arg2= if test -n "$dest"; then files="$files $dest" dest=$arg @@ -2034,10 +2105,9 @@ func_mode_install () case $arg in -d) isdir=yes ;; -f) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac + if $install_cp; then :; else + prev=$arg + fi ;; -g | -m | -o) prev=$arg @@ -2051,6 +2121,10 @@ func_mode_install () *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi prev= else dest=$arg @@ -2062,6 +2136,10 @@ func_mode_install () # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + install_shared_prog="$install_shared_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ @@ -2070,6 +2148,13 @@ func_mode_install () test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result" + fi + fi + if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" @@ -2157,7 +2242,7 @@ func_mode_install () if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. - inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that @@ -2170,9 +2255,9 @@ func_mode_install () if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else - relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" @@ -2190,7 +2275,7 @@ func_mode_install () test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. - func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in @@ -2330,7 +2415,7 @@ func_mode_install () if test -f "$lib"; then func_source "$lib" fi - libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no @@ -2349,7 +2434,7 @@ func_mode_install () file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. - relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" @@ -2368,7 +2453,7 @@ func_mode_install () } else # Install the binary that we compiled earlier. - file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi @@ -2418,7 +2503,7 @@ func_mode_install () test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" - if test -n "$current_libdirs"; then + if test -n "$current_libdirs" && $opt_finish; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' @@ -2470,6 +2555,10 @@ func_generate_dlsyms () extern \"C\" { #endif +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + /* External symbol declarations for the compiler. */\ " @@ -2479,7 +2568,7 @@ extern \"C\" { $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` + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$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'" @@ -2487,15 +2576,15 @@ extern \"C\" { if test -n "$exclude_expsyms"; then $opt_dry_run || { - eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' - eval '$MV "$nlist"T "$nlist"' + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $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"' + $EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" } fi @@ -2504,23 +2593,23 @@ extern \"C\" { 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"' + ${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"' + echo EXPORTS > "$output_objdir/$outputname.def" + 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"' + ${SED} -e 's/\([].[*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/' < "$export_symbols" > "$output_objdir/$outputname.exp" + $GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" case $host in - *cygwin | *mingw* | *cegcc* ) - eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + *cygwin* | *mingw* | *cegcc* ) + echo EXPORTS > "$output_objdir/$outputname.def" + cat "$nlist" >> "$output_objdir/$outputname.def" ;; esac } @@ -2532,7 +2621,7 @@ extern \"C\" { func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { - eval '$ECHO ": $name " >> "$nlist"' + $ECHO ": $name " >> "$nlist" eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done @@ -2562,10 +2651,10 @@ extern \"C\" { if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else - $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { @@ -2575,7 +2664,7 @@ typedef struct { " case $host in *cygwin* | *mingw* | *cegcc* ) - $ECHO >> "$output_objdir/$my_dlsyms" "\ + 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. */" @@ -2588,7 +2677,7 @@ typedef struct { lt_dlsym_const=const ;; esac - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist @@ -2604,7 +2693,7 @@ lt_${my_prefix}_LTX_preloaded_symbols[] = eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac - $ECHO >> "$output_objdir/$my_dlsyms" "\ + echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; @@ -2662,16 +2751,16 @@ static const void *lt_preloaded_setup() { 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%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "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%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "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%"` + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; @@ -2685,8 +2774,8 @@ static const void *lt_preloaded_setup() { # 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@%%"` + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } @@ -2696,6 +2785,7 @@ static const void *lt_preloaded_setup() { # 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. +# Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug @@ -2706,9 +2796,9 @@ func_win32_libid () 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 | + if $OBJDUMP -f "$1" | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + win32_nmres=`$NM -f posix -A "$1" | $SED -n -e ' 1,100{ / I /{ @@ -2745,7 +2835,18 @@ 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 test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else @@ -2838,18 +2939,23 @@ func_extract_archives () } - -# func_emit_wrapper_part1 [arg=no] +# func_emit_wrapper [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 () +# 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_part1_arg1=no - if test -n "$1" ; then - func_emit_wrapper_part1_arg1=$1 - fi + func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL @@ -2865,7 +2971,6 @@ func_emit_wrapper_part1 () # 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 @@ -2896,31 +3001,29 @@ if test \"\$libtool_install_magic\" = \"$magic\"; then 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 + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" fi\ -" - $ECHO "\ # Find the directory that this script lives in. - thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` + thisdir=\`\$ECHO \"\$file\" | $SED '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'\` + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do - destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then @@ -2930,30 +3033,13 @@ else esac fi - file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` + file=\`\$ECHO \"\$file\" | $SED '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 + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then @@ -2961,7 +3047,7 @@ func_emit_wrapper_part2 () fi # remove .libs from thisdir case \"\$thisdir\" in - *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi @@ -2992,7 +3078,7 @@ func_emit_wrapper_part2 () # relink executable if necessary if test -n \"\$relink_command\"; then - if relink_command_output=\`eval \$relink_command 2>&1\`; then : + if relink_command_output=\`eval \"\$relink_command\" 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" @@ -3024,7 +3110,7 @@ func_emit_wrapper_part2 () # 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/::*\$//'\` + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " @@ -3064,41 +3150,12 @@ func_emit_wrapper_part2 () # 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 + \$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 @@ -3125,23 +3182,19 @@ func_emit_wrapper () func_to_host_path () { func_to_host_path_result="$1" - if test -n "$1" ; then + 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"` + func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -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"` + func_to_host_path_result=`cygpath -w "$1" | + $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero @@ -3153,17 +3206,17 @@ func_to_host_path () # 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" |\ + 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="" + 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 " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" @@ -3196,30 +3249,24 @@ func_to_host_path () func_to_host_pathlist () { func_to_host_pathlist_result="$1" - if test -n "$1" ; then + 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|:*$||'` + func_stripname : : "$1" + func_to_host_pathlist_tmp1=$func_stripname_result 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"` + func_to_host_pathlist_result=` + ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -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" |\ + func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | $SED -e "$lt_sed_naive_backslashify"` ;; * ) @@ -3235,18 +3282,17 @@ func_to_host_pathlist () 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" + func_append 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 + 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 " \`$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 @@ -3263,7 +3309,7 @@ func_to_host_pathlist () ;; esac case "$1" in - *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" + *: ) func_append func_to_host_pathlist_result ";" ;; esac ;; @@ -3295,24 +3341,20 @@ func_emit_cwrapperexe_src () */ EOF cat <<"EOF" +#ifdef _MSC_VER +# define _CRT_SECURE_NO_DEPRECATE 1 +#endif #include #include #ifdef _MSC_VER # include # include # include -# define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include -# 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 @@ -3324,6 +3366,44 @@ int setenv (const char *, const char *, int); #include #include +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) @@ -3339,14 +3419,7 @@ int setenv (const char *, const char *, int); # 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 - +/* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' @@ -3377,10 +3450,6 @@ int setenv (const char *, const char *, int); # 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 @@ -3394,7 +3463,7 @@ int setenv (const char *, const char *, int); } while (0) #undef LTWRAPPER_DEBUGPRINTF -#if defined DEBUGWRAPPER +#if defined LT_DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) @@ -3421,28 +3490,11 @@ 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 <') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -e 's/\([\\"]\)/\\\1/g' \ + -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' + cat <<"EOF" +} EOF } # end: func_emit_cwrapperexe_src +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval "$file_magic_cmd \"\$1\" 2>/dev/null" | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + # func_mode_link arg... func_mode_link () { @@ -4661,7 +4714,7 @@ func_mode_link () esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) - testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; @@ -4680,7 +4733,7 @@ func_mode_link () -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4705,6 +4758,9 @@ func_mode_link () # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; + *-*-linux*) + test "X$arg" = "X-lc" && continue + ;; esac elif test "X$arg" = "X-lc_r"; then case $host in @@ -4866,7 +4922,7 @@ func_mode_link () for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" - arg="$arg $wl$func_quote_for_eval_result" + arg="$arg $func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" @@ -4922,8 +4978,9 @@ func_mode_link () # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files + # -tp=* Portland pgcc target processor selection -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" @@ -5070,7 +5127,7 @@ func_mode_link () func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" + eval "arg=\"$export_dynamic_flag_spec\"" func_append compile_command " $arg" func_append finalize_command " $arg" fi @@ -5083,12 +5140,12 @@ func_mode_link () if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var - eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi - eval sys_lib_search_path=\"$sys_lib_search_path_spec\" - eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + eval "sys_lib_search_path=\"$sys_lib_search_path_spec\"" + eval "sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" @@ -5206,7 +5263,8 @@ func_mode_link () # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do - deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` + func_basename "$deplib" + deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; @@ -5385,7 +5443,7 @@ func_mode_link () match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` - if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi @@ -5395,15 +5453,15 @@ func_mode_link () ;; esac if test "$valid_a_lib" != yes; then - $ECHO + echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because the file extensions .$libext of this argument makes me believe" - $ECHO "*** that it is just a static archive that I should not use here." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." else - $ECHO + echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" @@ -5476,7 +5534,7 @@ func_mode_link () # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then - tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; @@ -5484,7 +5542,7 @@ func_mode_link () esac done fi - dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then @@ -5738,7 +5796,7 @@ func_mode_link () fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then - $ECHO + echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else @@ -5777,7 +5835,7 @@ func_mode_link () shift realname="$1" shift - libname=`eval "\\$ECHO \"$libname_spec\""` + eval "libname=\"$libname_spec\"" # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" @@ -5790,7 +5848,7 @@ func_mode_link () versuffix="-$major" ;; esac - eval soname=\"$soname_spec\" + eval "soname=\"$soname_spec\"" else soname="$realname" fi @@ -5841,9 +5899,9 @@ func_mode_link () if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then - $ECHO - $ECHO "*** And there doesn't seem to be a static archive available" - $ECHO "*** The link will probably fail, sorry" + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi @@ -5870,7 +5928,7 @@ func_mode_link () test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then - add_dir="-L$dir" + add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in @@ -5983,21 +6041,21 @@ func_mode_link () # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. - $ECHO + echo $ECHO "*** Warning: This system can not link to static lib archive $lib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then - $ECHO "*** But as you try to build a module library, libtool will still create " - $ECHO "*** a static module, that should work as long as the dlopening application" - $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then - $ECHO - $ECHO "*** However, this would only work if libtool was able to extract symbol" - $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" - $ECHO "*** not find such a program. So, this module is probably useless." - $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module @@ -6051,6 +6109,7 @@ func_mode_link () if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do + path= case $deplib in -L*) path="$deplib" ;; *.la) @@ -6071,7 +6130,7 @@ func_mode_link () case $host in *-*-darwin*) depdepl= - eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp @@ -6093,7 +6152,7 @@ func_mode_link () ;; esac else - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ @@ -6116,7 +6175,7 @@ func_mode_link () 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'` + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" @@ -6146,7 +6205,7 @@ func_mode_link () fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order - eval tmp_libs=\"\$$var\" + eval tmp_libs=\$$var new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so @@ -6197,7 +6256,7 @@ func_mode_link () *) tmp_libs="$tmp_libs $deplib" ;; esac done - eval $var=\"$tmp_libs\" + eval $var=\$tmp_libs done # for var fi # Last step: remove runtime libs from dependency_libs @@ -6260,8 +6319,8 @@ func_mode_link () lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" + eval "shared_ext=\"$shrext_cmds\"" + eval "libname=\"$libname_spec\"" ;; *) test "$module" = no && \ @@ -6271,8 +6330,8 @@ func_mode_link () # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result - eval shared_ext=\"$shrext_cmds\" - eval libname=\"$libname_spec\" + eval "shared_ext=\"$shrext_cmds\"" + eval "libname=\"$libname_spec\"" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result @@ -6284,7 +6343,7 @@ func_mode_link () if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else - $ECHO + echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" @@ -6352,7 +6411,7 @@ func_mode_link () age="$number_minor" revision="$number_revision" ;; - freebsd-aout|freebsd-elf|sunos) + freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" @@ -6586,14 +6645,14 @@ func_mode_link () oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. - oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do - # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` - # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` - # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then @@ -6634,7 +6693,7 @@ func_mode_link () if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) @@ -6711,21 +6770,21 @@ EOF esac fi if test -n "$i" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` - deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + eval "libname=\"$libname_spec\"" + eval "deplib_matches=\"$library_names_spec\"" set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then newdeplibs="$newdeplibs $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which I believe you do not have" - $ECHO "*** because a test_compile did reveal that the linker did not use it for" - $ECHO "*** its dynamic dependency list that programs get resolved with at runtime." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which I believe you do not have" + echo "*** because a test_compile did reveal that the linker did not use it for" + echo "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; @@ -6754,30 +6813,30 @@ EOF esac fi if test -n "$i" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` - deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` + eval "libname=\"$libname_spec\"" + eval "deplib_matches=\"$library_names_spec\"" set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then newdeplibs="$newdeplibs $i" else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because a test_compile did reveal that the linker did not use this one" - $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because a test_compile did reveal that the linker did not use this one" + echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes - $ECHO + echo $ECHO "*** Warning! Library $i is needed by this library but I was not able to" - $ECHO "*** make it link in! You will probably need to install it or some" - $ECHO "*** library that it depends on before this library will be fully" - $ECHO "*** functional. Installing it before continuing would be even better." + echo "*** make it link in! You will probably need to install it or some" + echo "*** library that it depends on before this library will be fully" + echo "*** functional. Installing it before continuing would be even better." fi ;; *) @@ -6804,7 +6863,7 @@ EOF esac fi if test -n "$a_deplib" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` + eval "libname=\"$libname_spec\"" for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do @@ -6823,10 +6882,10 @@ EOF potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; - *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done - if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + if eval "$file_magic_cmd \"\$potlib\"" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" @@ -6838,12 +6897,12 @@ EOF fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because I did check the linker path looking for a file starting" + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else @@ -6876,12 +6935,12 @@ EOF esac fi if test -n "$a_deplib" ; then - libname=`eval "\\$ECHO \"$libname_spec\""` + eval "libname=\"$libname_spec\"" for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test - if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" @@ -6892,12 +6951,12 @@ EOF fi if test -n "$a_deplib" ; then droppeddeps=yes - $ECHO + echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." - $ECHO "*** I have the capability to make that library automatically link in when" - $ECHO "*** you link to this library. But I can only do this if you have a" - $ECHO "*** shared version of the library, which you do not appear to have" - $ECHO "*** because I did check the linker path looking for a file starting" + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else @@ -6915,25 +6974,25 @@ EOF ;; none | unknown | *) newdeplibs="" - tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ - -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' - tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi - if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | - $GREP . >/dev/null; then - $ECHO + case $tmp_deplibs in + *[!\ \ ]*) + echo if test "X$deplibs_check_method" = "Xnone"; then - $ECHO "*** Warning: inter-library dependencies are not supported in this platform." + echo "*** Warning: inter-library dependencies are not supported in this platform." else - $ECHO "*** Warning: inter-library dependencies are not known to be supported." + echo "*** Warning: inter-library dependencies are not known to be supported." fi - $ECHO "*** All declared inter-library dependencies are being dropped." + echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes - fi + ;; + esac ;; esac versuffix=$versuffix_save @@ -6945,23 +7004,23 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework - newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then - $ECHO - $ECHO "*** Warning: libtool could not satisfy all declared inter-library" + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" - $ECHO "*** a static module, that should work as long as the dlopening" - $ECHO "*** application is linked with the -dlopen flag." + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then - $ECHO - $ECHO "*** However, this would only work if libtool was able to extract symbol" - $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" - $ECHO "*** not find such a program. So, this module is probably useless." - $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" @@ -6971,16 +7030,16 @@ EOF build_libtool_libs=no fi else - $ECHO "*** The inter-library dependencies that have been dropped here will be" - $ECHO "*** automatically added whenever a program is linked with this library" - $ECHO "*** or is declared to -dlopen it." + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then - $ECHO - $ECHO "*** Since this library must not contain undefined symbols," - $ECHO "*** because either the platform does not support them or" - $ECHO "*** it was explicitly requested with -no-undefined," - $ECHO "*** libtool will only create a static version of it." + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module @@ -6997,9 +7056,9 @@ EOF # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) - newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -7059,7 +7118,7 @@ EOF esac fi else - eval flag=\"$hardcode_libdir_flag_spec\" + eval "flag=\"$hardcode_libdir_flag_spec\"" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then @@ -7074,9 +7133,9 @@ EOF test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then - eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" + eval "dep_rpath=\"$hardcode_libdir_flag_spec_ld\"" else - eval dep_rpath=\"$hardcode_libdir_flag_spec\" + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then @@ -7085,7 +7144,8 @@ EOF for dir in $perm_rpath; do rpath="$rpath$dir:" done - eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + eval $runpath_var=\$rpath\$$runpath_var + export $runpath_var fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi @@ -7093,19 +7153,20 @@ EOF shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then - eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + eval $shlibpath_var=\$shlibpath\$$shlibpath_var + export $shlibpath_var fi # Get the real and link names of the library. - eval shared_ext=\"$shrext_cmds\" - eval library_names=\"$library_names_spec\" + eval "shared_ext=\"$shrext_cmds\"" + eval "library_names=\"$library_names_spec\"" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" + eval "soname=\"$soname_spec\"" else soname="$realname" fi @@ -7121,7 +7182,7 @@ EOF done # Use standard objects if they are pic - test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= @@ -7161,7 +7222,7 @@ EOF save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" - eval cmd=\"$cmd\" + eval "cmd=\"$cmd\"" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then @@ -7187,7 +7248,7 @@ EOF if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then @@ -7225,7 +7286,7 @@ EOF fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" @@ -7238,30 +7299,30 @@ EOF fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then - eval flag=\"$thread_safe_flag_spec\" + eval "flag=\"$thread_safe_flag_spec\"" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + $opt_dry_run || (cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U) || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then - eval test_cmds=\"$module_expsym_cmds\" + eval "test_cmds=\"$module_expsym_cmds\"" cmds=$module_expsym_cmds else - eval test_cmds=\"$module_cmds\" + eval "test_cmds=\"$module_cmds\"" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then - eval test_cmds=\"$archive_expsym_cmds\" + eval "test_cmds=\"$archive_expsym_cmds\"" cmds=$archive_expsym_cmds else - eval test_cmds=\"$archive_cmds\" + eval "test_cmds=\"$archive_cmds\"" cmds=$archive_cmds fi fi @@ -7288,7 +7349,8 @@ EOF save_libobjs=$libobjs fi save_output=$output - output_la=`$ECHO "X$output" | $Xsed -e "$basename"` + func_basename "$output" + output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. @@ -7301,12 +7363,12 @@ EOF if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" - $ECHO 'INPUT (' > $output + echo 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done - $ECHO ')' >> $output + echo ')' >> $output 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 @@ -7329,7 +7391,7 @@ EOF if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext - eval test_cmds=\"$reload_cmds\" + eval "test_cmds=\"$reload_cmds\"" func_len " $test_cmds" len0=$func_len_result len=$len0 @@ -7348,17 +7410,19 @@ EOF # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. - eval concat_cmds=\"$reload_cmds $objlist $last_robj\" + reload_objs=$objlist + eval "concat_cmds=\"$reload_cmds\"" else # All subsequent reloadable object files will link in # the last one created. - eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" + reload_objs="$objlist $last_robj" + eval "concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext - objlist=$obj + objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result @@ -7368,9 +7432,10 @@ EOF # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" + reload_objs="$objlist $last_robj" + eval "concat_cmds=\"\${concat_cmds}$reload_cmds\"" if test -n "$last_robj"; then - eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + eval "concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"" fi delfiles="$delfiles $output" @@ -7385,9 +7450,9 @@ EOF 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\" + eval "concat_cmds=\"\$concat_cmds$export_symbols_cmds\"" if test -n "$last_robj"; then - eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + eval "concat_cmds=\"\$concat_cmds~\$RM $last_robj\"" fi fi @@ -7427,7 +7492,7 @@ EOF if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" - $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' + $opt_dry_run || $ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols" fi if test -n "$orig_export_symbols"; then @@ -7450,7 +7515,7 @@ EOF output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + eval "libobjs=\"\$libobjs $whole_archive_flag_spec\"" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the @@ -7474,7 +7539,7 @@ EOF if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. - eval cmds=\"\$cmds~\$RM $delfiles\" + eval "cmds=\"\$cmds~\$RM $delfiles\"" fi # Add any objects from preloaded convenience libraries @@ -7490,7 +7555,7 @@ EOF save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" - eval cmd=\"$cmd\" + eval "cmd=\"$cmd\"" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" @@ -7512,7 +7577,7 @@ EOF # Restore the uninstalled library and exit if test "$mode" = relink; then - $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + $opt_dry_run || (cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname) || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then @@ -7591,8 +7656,8 @@ EOF if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` + eval "tmp_whole_archive_flags=\"$whole_archive_flag_spec\"" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" @@ -7603,7 +7668,7 @@ EOF fi # Create the old-style object. - reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' @@ -7625,7 +7690,7 @@ EOF # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" - # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + # $opt_dry_run || echo timestamp > $libobj || exit $? exit $EXIT_SUCCESS fi @@ -7663,8 +7728,8 @@ EOF case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac @@ -7681,8 +7746,8 @@ EOF esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" - compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` - finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac @@ -7748,7 +7813,7 @@ EOF esac fi else - eval flag=\"$hardcode_libdir_flag_spec\" + eval "flag=\"$hardcode_libdir_flag_spec\"" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then @@ -7777,7 +7842,7 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" + eval "rpath=\" $hardcode_libdir_flag_spec\"" fi compile_rpath="$rpath" @@ -7799,7 +7864,7 @@ EOF esac fi else - eval flag=\"$hardcode_libdir_flag_spec\" + eval "flag=\"$hardcode_libdir_flag_spec\"" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then @@ -7813,14 +7878,14 @@ EOF if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" - eval rpath=\" $hardcode_libdir_flag_spec\" + eval "rpath=\" $hardcode_libdir_flag_spec\"" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. - compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` - finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" @@ -7832,15 +7897,15 @@ EOF wrappers_required=yes case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then 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 @@ -7849,7 +7914,7 @@ EOF esac if test "$wrappers_required" = no; then # Replace the output file specification. - compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. @@ -7896,7 +7961,7 @@ EOF # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit @@ -7915,7 +7980,7 @@ EOF if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then - relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= @@ -7927,7 +7992,7 @@ EOF fi # Replace the output file specification. - link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname @@ -7951,18 +8016,7 @@ EOF fi done relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` - fi - - # Quote $ECHO for shipping. - if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then - case $progpath in - [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; - *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; - esac - qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. @@ -8083,7 +8137,7 @@ EOF done | sort | sort -uc >/dev/null 2>&1); then : else - $ECHO "copying selected object files to avoid basename conflicts..." + echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" @@ -8115,7 +8169,7 @@ EOF esac done fi - eval cmds=\"$old_archive_cmds\" + eval "cmds=\"$old_archive_cmds\"" func_len " $cmds" len=$func_len_result @@ -8135,7 +8189,7 @@ EOF do last_oldobj=$obj done - eval test_cmds=\"$old_archive_cmds\" + eval "test_cmds=\"$old_archive_cmds\"" func_len " $test_cmds" len0=$func_len_result len=$len0 @@ -8154,7 +8208,7 @@ EOF RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ - eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + eval "concat_cmds=\"\${concat_cmds}$old_archive_cmds\"" objlist= len=$len0 fi @@ -8162,9 +8216,9 @@ EOF RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then - eval cmds=\"\$concat_cmds\" + eval "cmds=\"\$concat_cmds\"" else - eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + eval "cmds=\"\$concat_cmds~\$old_archive_cmds\"" fi fi fi @@ -8194,7 +8248,7 @@ EOF done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi @@ -8214,7 +8268,7 @@ EOF *.la) func_basename "$deplib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" @@ -8230,7 +8284,7 @@ EOF *.la) func_basename "$lib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" @@ -8249,7 +8303,7 @@ EOF # the library: func_basename "$lib" name="$func_basename_result" - eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" @@ -8579,3 +8633,4 @@ 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 index 34151a3ba62..5ef12ced2a8 100644 --- a/libjava/classpath/ltoptions.m4 +++ b/libjava/classpath/ltoptions.m4 @@ -1,6 +1,7 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives @@ -125,7 +126,7 @@ LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) @@ -133,13 +134,13 @@ case $host in esac test -z "$AS" && AS=as -_LT_DECL([], [AS], [0], [Assembler program])dnl +_LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool -_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump -_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], diff --git a/libjava/classpath/ltversion.m4 b/libjava/classpath/ltversion.m4 index b8e154fe6e1..bf87f77132d 100644 --- a/libjava/classpath/ltversion.m4 +++ b/libjava/classpath/ltversion.m4 @@ -9,15 +9,15 @@ # Generated from ltversion.in. -# serial 3012 ltversion.m4 +# serial 3134 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.2.6]) -m4_define([LT_PACKAGE_REVISION], [1.3012]) +m4_define([LT_PACKAGE_VERSION], [2.2.7a]) +m4_define([LT_PACKAGE_REVISION], [1.3134]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.2.6' -macro_revision='1.3012' +[macro_version='2.2.7a' +macro_revision='1.3134' _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 index 637bb2066c4..bf92b5e0790 100644 --- a/libjava/classpath/lt~obsolete.m4 +++ b/libjava/classpath/lt~obsolete.m4 @@ -1,6 +1,6 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives @@ -77,7 +77,6 @@ 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])]) @@ -90,3 +89,10 @@ 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])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/libjava/classpath/m4/ax_func_which_gethostbyname_r.m4 b/libjava/classpath/m4/ax_func_which_gethostbyname_r.m4 index d1811efe3d4..6fbe8eedeaa 100644 --- a/libjava/classpath/m4/ax_func_which_gethostbyname_r.m4 +++ b/libjava/classpath/m4/ax_func_which_gethostbyname_r.m4 @@ -54,13 +54,13 @@ ac_cv_func_which_gethostbyname_r=unknown # netdb.h is not declaring the function, and the compiler is thereby # assuming an implicit prototype. In which case, we're out of luck. # -AC_COMPILE_IFELSE( +AC_COMPILE_IFELSE([AC_LANG_SOURCE([ AC_LANG_PROGRAM( [[#include ]], [[ char *name = "www.gnu.org"; (void)gethostbyname_r(name) /* ; */ - ]]), + ]])])], ac_cv_func_which_gethostbyname_r=no) # @@ -70,7 +70,7 @@ AC_COMPILE_IFELSE( if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then -AC_COMPILE_IFELSE( +AC_COMPILE_IFELSE([AC_LANG_SOURCE([ AC_LANG_PROGRAM( [[#include ]], [[ @@ -80,7 +80,7 @@ AC_COMPILE_IFELSE( int buflen = 1024; int my_h_errno; (void)gethostbyname_r(name, &ret, buf, buflen, &retp, &my_h_errno) /* ; */ - ]]), + ]])])], ac_cv_func_which_gethostbyname_r=six) fi @@ -92,7 +92,7 @@ fi if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then -AC_COMPILE_IFELSE( +AC_COMPILE_IFELSE([AC_LANG_SOURCE([ AC_LANG_PROGRAM( [[#include ]], [[ @@ -102,7 +102,7 @@ AC_COMPILE_IFELSE( int buflen = 1024; int my_h_errno; (void)gethostbyname_r(name, &ret, buf, buflen, &my_h_errno) /* ; */ - ]]), + ]])])], ac_cv_func_which_gethostbyname_r=five) fi @@ -114,7 +114,7 @@ fi if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then -AC_COMPILE_IFELSE( +AC_COMPILE_IFELSE([AC_LANG_SOURCE([ AC_LANG_PROGRAM( [[#include ]], [[ @@ -122,7 +122,7 @@ AC_COMPILE_IFELSE( struct hostent ret; struct hostent_data data; (void)gethostbyname_r(name, &ret, &data) /* ; */ - ]]), + ]])])], ac_cv_func_which_gethostbyname_r=three) fi diff --git a/libjava/classpath/missing b/libjava/classpath/missing index 28055d2ae6f..86a8fc31e3c 100755 --- a/libjava/classpath/missing +++ b/libjava/classpath/missing @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-01-06.13; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. +# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -84,7 +84,6 @@ Supported PROGRAM values: help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and @@ -122,15 +121,6 @@ case $1 in # Not GNU programs, they don't have --version. ;; - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -226,7 +216,7 @@ WARNING: \`$1' $msg. You should only need it if \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -256,7 +246,7 @@ WARNING: \`$1' is $msg. You should only need it if \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG="\${$#}" + eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -318,41 +308,6 @@ WARNING: \`$1' is $msg. You should only need it if touch $file ;; - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. diff --git a/libjava/classpath/native/jni/classpath/jcl.c b/libjava/classpath/native/jni/classpath/jcl.c index 0180ab9f0f5..09709654bfc 100644 --- a/libjava/classpath/native/jni/classpath/jcl.c +++ b/libjava/classpath/native/jni/classpath/jcl.c @@ -1,5 +1,5 @@ /* jcl.c - Copyright (C) 1998, 2005, 2006, 2008 Free Software Foundation, Inc. + Copyright (C) 1998, 2005, 2006, 2008, 2010 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 @@ -42,12 +42,24 @@ exception statement from your version. */ #include #include -#ifndef __GNUC__ - #ifndef __attribute__ - #define __attribute__(x) /* nothing */ - #endif +#if !defined(__GNUC__) && !defined(__attribute__) +# define __attribute__(x) /* nothing */ #endif +#if SIZEOF_VOID_P == 8 +# define JCL_POINTER_CLASSNAME "gnu/classpath/Pointer64" +# define JCL_POINTER_DATASIGN "J" +# define JCL_POINTER_INTTYPE jlong +# define JCL_POINTER_GETFIELD GetLongField +#elif SIZEOF_VOID_P == 4 +# define JCL_POINTER_CLASSNAME "gnu/classpath/Pointer32" +# define JCL_POINTER_DATASIGN "I" +# define JCL_POINTER_INTTYPE jint +# define JCL_POINTER_GETFIELD GetIntField +#else +# error "Pointer size is not supported." +#endif /* SIZEOF_VOID_P */ + /* * Cached Pointer class info. */ @@ -55,6 +67,12 @@ static jclass rawDataClass = NULL; static jfieldID rawData_fid = NULL; static jmethodID rawData_mid = NULL; +/* Define JCL_NO_JNIONLOAD to build JCL without JNI_OnLoad exported. + * (rawDataClass and friends are initialized lazily in that case.) + */ + +#ifndef JCL_NO_JNIONLOAD + /* * JNI OnLoad constructor. */ @@ -69,35 +87,23 @@ JNI_OnLoad (JavaVM *vm, void *reserved __attribute__((unused))) return JNI_VERSION_1_4; } env = (JNIEnv *) envp; -#if SIZEOF_VOID_P == 8 - rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer64"); - if (rawDataClass != NULL) - rawDataClass = (*env)->NewGlobalRef (env, rawDataClass); - if (rawDataClass != NULL) - { - rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", "J"); - rawData_mid = (*env)->GetMethodID (env, rawDataClass, "", "(J)V"); - } -#else -#if SIZEOF_VOID_P == 4 - rawDataClass = (*env)->FindClass (env, "gnu/classpath/Pointer32"); + rawDataClass = (*env)->FindClass (env, JCL_POINTER_CLASSNAME); if (rawDataClass != NULL) rawDataClass = (*env)->NewGlobalRef (env, rawDataClass); if (rawDataClass != NULL) { - rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", "I"); - rawData_mid = (*env)->GetMethodID (env, rawDataClass, "", "(I)V"); + rawData_fid = (*env)->GetFieldID (env, rawDataClass, "data", + JCL_POINTER_DATASIGN); + rawData_mid = (*env)->GetMethodID (env, rawDataClass, "", + "(" JCL_POINTER_DATASIGN ")V"); } -#else -#error "Pointer size is not supported." -#endif /* SIZEOF_VOID_P == 4 */ -#endif /* SIZEOF_VOID_P == 8 */ return JNI_VERSION_1_4; } +#endif /* !JCL_NO_JNIONLOAD */ JNIEXPORT void JNICALL JCL_ThrowException (JNIEnv * env, const char *className, const char *errMsg) @@ -127,9 +133,10 @@ JCL_ThrowException (JNIEnv * env, const char *className, const char *errMsg) } /* Removed this (more comprehensive) error string to avoid the need for * a static variable or allocation of a buffer for this message in this - * (unlikely) error case. --Fridi. + * (unlikely) error case. --Fridi. * - * sprintf(errstr,"JCL: Failed to throw exception %s with message %s: could not find exception class.", className, errMsg); + * sprintf(errstr,"JCL: Failed to throw exception %s with message %s:" + * " could not find exception class.", className, errMsg); */ (*env)->ThrowNew (env, errExcClass, className); } @@ -154,12 +161,12 @@ JCL_realloc (JNIEnv * env, void *ptr, size_t size) { void *orig_ptr = ptr; ptr = realloc (ptr, size); - if (ptr == 0) + if (ptr == NULL) { - free (orig_ptr); + if (orig_ptr != NULL) + free (orig_ptr); JCL_ThrowException (env, "java/lang/OutOfMemoryError", "malloc() failed."); - return NULL; } return (ptr); } @@ -238,37 +245,76 @@ JCL_FindClass (JNIEnv * env, const char *className) /* * Build a Pointer object. */ - JNIEXPORT jobject JNICALL JCL_NewRawDataObject (JNIEnv * env, void *data) { +#ifdef JCL_NO_JNIONLOAD + jclass aclass = rawDataClass; + jmethodID mid; + if (aclass == NULL) + { + aclass = (*env)->FindClass (env, JCL_POINTER_CLASSNAME); + if (aclass == NULL || + (aclass = (*env)->NewGlobalRef (env, aclass)) == NULL) + { + JCL_ThrowException (env, "java/lang/InternalError", + "Pointer class not found"); + return NULL; + } + rawDataClass = aclass; + } + if ((mid = rawData_mid) == NULL) + { + if ((mid = (*env)->GetMethodID (env, aclass, "", + "(" JCL_POINTER_DATASIGN ")V")) == NULL) + { + JCL_ThrowException (env, "java/lang/InternalError", + "Pointer class constructor not found"); + return NULL; + } + rawData_mid = mid; + } + return (*env)->NewObject (env, aclass, mid, (JCL_POINTER_INTTYPE) data); +#else if (rawDataClass == NULL || rawData_mid == NULL) { JCL_ThrowException (env, "java/lang/InternalError", "Pointer class was not properly initialized"); return NULL; } - -#if SIZEOF_VOID_P == 8 - return (*env)->NewObject (env, rawDataClass, rawData_mid, (jlong) data); -#else - return (*env)->NewObject (env, rawDataClass, rawData_mid, (jint) data); + return (*env)->NewObject (env, rawDataClass, rawData_mid, + (JCL_POINTER_INTTYPE) data); #endif } JNIEXPORT void * JNICALL JCL_GetRawData (JNIEnv * env, jobject rawdata) { +#ifdef JCL_NO_JNIONLOAD + jclass aclass; + jfieldID fid = rawData_fid; + if (fid == NULL) + { + aclass = rawDataClass; + if ((aclass == NULL && (aclass = (*env)->FindClass (env, + JCL_POINTER_CLASSNAME)) == NULL) || + (fid = (*env)->GetFieldID (env, aclass, "data", + JCL_POINTER_DATASIGN)) == NULL) + { + JCL_ThrowException (env, "java/lang/InternalError", + "Pointer class was not properly initialized"); + return NULL; + } + rawData_fid = fid; + } + return (void *) (*env)->JCL_POINTER_GETFIELD (env, rawdata, fid); +#else if (rawData_fid == NULL) { JCL_ThrowException (env, "java/lang/InternalError", "Pointer class was not properly initialized"); return NULL; } - -#if SIZEOF_VOID_P == 8 - return (void *) (*env)->GetLongField (env, rawdata, rawData_fid); -#else - return (void *) (*env)->GetIntField (env, rawdata, rawData_fid); -#endif + return (void *) (*env)->JCL_POINTER_GETFIELD (env, rawdata, rawData_fid); +#endif } diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c b/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c index 80c6795928c..224622a1c70 100644 --- a/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c +++ b/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c @@ -163,14 +163,12 @@ static void gst_classpath_src_class_init (GstClasspathSrcClass *klass) { GObjectClass *gobject_class; - GstElementClass *gstelement_class; GstBaseSrcClass *gstbasesrc_class; GstPushSrcClass *gstpushsrc_class; GParamSpec *pspec; gobject_class = G_OBJECT_CLASS (klass); - gstelement_class = GST_ELEMENT_CLASS (klass); gstbasesrc_class = GST_BASE_SRC_CLASS (klass); gstpushsrc_class = GST_PUSH_SRC_CLASS (klass); diff --git a/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c b/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c index aee61bd08f6..b8f1ba5b2f0 100644 --- a/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c @@ -99,9 +99,8 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor - (JNIEnv *env, jobject obj, jint type) + (JNIEnv *env __attribute__((unused)), jobject obj, jint type) { - void *ptr; GdkWindow *win; GdkCursorType gdk_cursor_type; GdkCursor *gdk_cursor; @@ -109,7 +108,6 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor gdk_threads_enter (); javaObj = obj; - ptr = gtkpeer_get_global_ref (env, obj); switch (type) { @@ -230,10 +228,9 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals } static void -connect_signals_for_widget (GtkWidget *w) +connect_signals_for_widget (GtkWidget *w __attribute__((unused))) { /* FIXME: Not implemented. */ - w = NULL; } JNIEXPORT void JNICALL @@ -257,7 +254,6 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag (JNIEnv *env, jobject obj, jobject img, jint x, jint y, jint act, jstring target) { - void *ptr; const gchar *data; GtkTargetEntry tar[1]; GdkEvent *event; @@ -268,7 +264,6 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag gdk_threads_enter (); javaObj = obj; - ptr = gtkpeer_get_global_ref (env, obj); data = (*env)->GetStringUTFChars (env, target, NULL); tar[0].target = (gchar *) data; diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c index 3364640a00c..31bab77d46b 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c @@ -121,7 +121,6 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState { GdkDrawable *drawable; GtkWidget *widget; - int width, height; cairo_t *cr; void *ptr; @@ -136,9 +135,6 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState drawable = widget->window; g_assert (drawable != NULL); - width = widget->allocation.width; - height = widget->allocation.height; - cr = gdk_cairo_create(drawable); g_assert(cr != NULL); diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c index 4240f112e30..ea9c1d6e8b0 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c @@ -120,6 +120,8 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseMove result = XTestFakeMotionEvent (xdisplay, -1, x, y, CurrentTime); + if (result) + g_warning("XTestFakeMotionEvent returned %d\n", result); XFlush (xdisplay); @@ -153,6 +155,8 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mousePress result = XTestFakeButtonEvent (xdisplay, awt_button_mask_to_num (buttons), True, CurrentTime); + if (result) + g_warning("XTestFakeButtonEvent returned %d\n", result); XFlush (xdisplay); @@ -185,6 +189,8 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseRelease result = XTestFakeButtonEvent (xdisplay, awt_button_mask_to_num (buttons), False, CurrentTime); + if (result) + g_warning("XTestFakeButtonEvent returned %d\n", result); XFlush (xdisplay); @@ -275,7 +281,7 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress &n_keys)) { /* No matching keymap entry was found. */ - g_printerr ("No matching keymap entries were found\n"); + g_message ("No matching keymap entries were found\n"); gdk_threads_leave (); return; } @@ -287,6 +293,8 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress result = XTestFakeKeyEvent (xdisplay, keymap_keys[0].keycode, True, CurrentTime); + if (result) + g_warning("XTestFakeKeyEvent returned %d\n", result); g_free (keymap_keys); @@ -330,7 +338,7 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease &n_keys)) { /* No matching keymap entry was found. */ - g_printerr ("No matching keymap entries were found\n"); + g_message ("No matching keymap entries were found\n"); gdk_threads_leave (); return; } @@ -342,6 +350,8 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease result = XTestFakeKeyEvent (xdisplay, keymap_keys[0].keycode, False, CurrentTime); + if (result) + g_warning("XTestFakeKeyEvent returned %d\n", result); g_free (keymap_keys); diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c index b7b1c3322d1..0511c051a99 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c @@ -83,20 +83,25 @@ Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_show JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup - (JNIEnv *env, jobject obj, jobject parent) + (JNIEnv *env, jobject obj, jobject parent __attribute__((unused))) { - void *ptr1, *ptr2; + void *ptr1; GtkMenu *menu; +#if 0 + void *ptr2; +#endif gdk_threads_enter (); ptr1 = gtkpeer_get_widget (env, obj); - ptr2 = gtkpeer_get_widget (env, parent); menu = GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu); gtk_menu_set_accel_group (menu, gtk_accel_group_new ()); /* FIXME: update this to use GTK-2.4 GtkActions. */ + // FIXME: _gtk_accel_group_attach is a GTK-private function, so + // we'll need a different approach here #if 0 + ptr2 = gtkpeer_get_widget (env, parent); _gtk_accel_group_attach (gtk_menu_get_accel_group (menu), G_OBJECT (gtk_widget_get_toplevel (ptr2))); #endif diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c index b2097970cb6..ad996641ff0 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c @@ -1,6 +1,6 @@ /* gtktoolkit.c -- Native portion of GtkToolkit - Copyright (C) 1998, 1999, 2005, 2007 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2005, 2007, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -216,6 +216,7 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env, init_dpi_conversion_factor (); gtktoolkit = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkMainThread"); + gtktoolkit = (*env)->NewGlobalRef(env, gtktoolkit); /* bug fix #40889 */ setRunningID = (*env)->GetStaticMethodID (env, gtktoolkit, "setRunning", "(Z)V"); } diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c index 50197cab07e..af0868cc206 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c @@ -110,7 +110,7 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels GdkPixmap *pixmap; GdkPixbuf *pixbuf; jintArray jpixels; - int width, height, depth, size; + int width, height, size; jclass cls; jfieldID field; guchar *pixels; @@ -129,8 +129,6 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels gdk_threads_enter(); - /* get depth in bytes */ - depth = gdk_drawable_get_depth( pixmap ) >> 3; size = width * height; jpixels = (*env)->NewIntArray ( env, size ); jpixdata = (*env)->GetIntArrayElements (env, jpixels, NULL); diff --git a/libjava/classpath/native/jni/java-io/Makefile.am b/libjava/classpath/native/jni/java-io/Makefile.am index 58bd973e2fb..80edb32fa38 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.am +++ b/libjava/classpath/native/jni/java-io/Makefile.am @@ -1,6 +1,7 @@ nativeexeclib_LTLIBRARIES = libjavaio.la -libjavaio_la_SOURCES = java_io_VMFile.c \ +libjavaio_la_SOURCES = java_io_VMConsole.c \ + java_io_VMFile.c \ java_io_VMObjectInputStream.c \ java_io_VMObjectStreamClass.c diff --git a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in index 0052aeeb825..b9c68adc149 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.in +++ b/libjava/classpath/native/jni/java-io/Makefile.in @@ -94,7 +94,7 @@ LTLIBRARIES = $(nativeexeclib_LTLIBRARIES) libjavaio_la_DEPENDENCIES = \ $(top_builddir)/native/jni/classpath/jcl.lo \ $(top_builddir)/native/jni/native-lib/libclasspathnative.la -am_libjavaio_la_OBJECTS = java_io_VMFile.lo \ +am_libjavaio_la_OBJECTS = java_io_VMConsole.lo java_io_VMFile.lo \ java_io_VMObjectInputStream.lo java_io_VMObjectStreamClass.lo libjavaio_la_OBJECTS = $(am_libjavaio_la_OBJECTS) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include @@ -326,7 +326,8 @@ top_srcdir = @top_srcdir@ uudecode = @uudecode@ vm_classes = @vm_classes@ nativeexeclib_LTLIBRARIES = libjavaio.la -libjavaio_la_SOURCES = java_io_VMFile.c \ +libjavaio_la_SOURCES = java_io_VMConsole.c \ + java_io_VMFile.c \ java_io_VMObjectInputStream.c \ java_io_VMObjectStreamClass.c @@ -412,6 +413,7 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_io_VMConsole.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_io_VMFile.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_io_VMObjectInputStream.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_io_VMObjectStreamClass.Plo@am__quote@ diff --git a/libjava/classpath/native/jni/java-io/java_io_VMConsole.c b/libjava/classpath/native/jni/java-io/java_io_VMConsole.c new file mode 100644 index 00000000000..2883f5f73eb --- /dev/null +++ b/libjava/classpath/native/jni/java-io/java_io_VMConsole.c @@ -0,0 +1,90 @@ +/* java_io_VMConsole.c - Native methods for java.io.Console class + Copyright (C) 2012 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. */ + +/* do not move; needed here because of some macro definitions */ +#include + +#include +#include + +#include + +#include "java_io_VMConsole.h" + +/*************************************************************************/ + +#define TERMIOS_ECHO_IFLAGS (IUCLC|IXON|IXOFF|IXANY) +#define TERMIOS_ECHO_LFLAGS (ECHO|ECHOE|ECHOK|ECHONL|TOSTOP) + +/* + * Class: java_io_VMConsole + * Method: echo + * Signature: (Z)Z + */ +JNIEXPORT jstring JNICALL +Java_java_io_VMConsole_readPassword (JNIEnv * env, + jclass clazz + __attribute__ ((__unused__)), + jobject con) +{ + struct termios old, new; + jmethodID readLineID; + jstring result; + + readLineID = + (*env)->GetMethodID (env, (*env)->GetObjectClass (env, con), "readLine", + "()Ljava/lang/String;"); + if (!readLineID) + { + return NULL; + } + + tcgetattr (STDIN_FILENO, &old); + + tcgetattr (STDIN_FILENO, &new); + + new.c_iflag &= ~TERMIOS_ECHO_IFLAGS; + new.c_lflag &= ~TERMIOS_ECHO_LFLAGS; + + tcsetattr (STDIN_FILENO, TCSANOW, &new); + + result = (*env)->CallObjectMethod (env, con, readLineID); + + tcsetattr (STDIN_FILENO, TCSANOW, &old); + + return result; +} diff --git a/libjava/classpath/native/jni/java-lang/java_lang_VMSystem.c b/libjava/classpath/native/jni/java-lang/java_lang_VMSystem.c index d2032279145..f623857d34a 100644 --- a/libjava/classpath/native/jni/java-lang/java_lang_VMSystem.c +++ b/libjava/classpath/native/jni/java-lang/java_lang_VMSystem.c @@ -39,8 +39,12 @@ exception statement from your version. */ #include +#include #include #include +#include +#include +#include /* * Class: java_lang_VMSystem @@ -111,6 +115,22 @@ Java_java_lang_VMSystem_setErr (JNIEnv * env, (*env)->SetStaticObjectField (env, cls, field, obj); } +static jlong currentTimeMicros(JNIEnv * env) +{ + /* Note: this implementation copied directly from Japhar's, by Chris Toshok. */ + jlong result; + struct timeval tp; + + if (gettimeofday (&tp, NULL) == -1) + (*env)->FatalError (env, "gettimeofday call failed."); + + result = (jlong) tp.tv_sec; + result *= (jlong)1000000L; + result += (jlong)tp.tv_usec; + + return result; +} + /* * Class: java_lang_VMSystem * Method: nanoTime @@ -118,22 +138,38 @@ Java_java_lang_VMSystem_setErr (JNIEnv * env, */ JNIEXPORT jlong JNICALL Java_java_lang_VMSystem_nanoTime - (JNIEnv * env __attribute__ ((__unused__)), + (JNIEnv * env, jclass thisClass __attribute__ ((__unused__))) { - /* Note: this implementation copied directly from Japhar's, by Chris Toshok. */ +#if defined(HAVE_CLOCK_GETTIME) && defined(_POSIX_MONOTONIC_CLOCK) jlong result; - struct timeval tp; + struct timespec tp; - if (gettimeofday (&tp, NULL) == -1) - (*env)->FatalError (env, "gettimeofday call failed."); + if (clock_gettime (CLOCK_MONOTONIC, &tp) == -1) { + return currentTimeMicros(env) * (jlong)1000; + } result = (jlong) tp.tv_sec; - result *= (jlong)1000000L; - result += (jlong)tp.tv_usec; - result *= (jlong)1000; + result *= (jlong)1000000000L; + result += (jlong)tp.tv_nsec; return result; +#else + return currentTimeMicros(env) * (jlong)1000; +#endif +} + +/* + * Class: java_lang_VMSystem + * Method: currentTimeMillis + * Signature: ()J + */ +JNIEXPORT jlong JNICALL +Java_java_lang_VMSystem_currentTimeMillis + (JNIEnv * env, + jclass thisClass __attribute__ ((__unused__))) +{ + return currentTimeMicros(env) / (jlong)1000L; } JNIEXPORT jstring JNICALL diff --git a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c index 6ee7773b839..4de63cfdc40 100644 --- a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c +++ b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c @@ -180,6 +180,7 @@ Java_java_net_VMInetAddress_getHostByAddr (JNIEnv * env, /* Resolve the address and return the name */ result = cpnet_getHostByAddr (env, addr, hostname, sizeof (hostname)); + cpnet_freeAddress (env, addr); if (result != CPNATIVE_OK) { JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, @@ -330,6 +331,7 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env, } result = cpnet_aton (env, hostname, &address); + (*env)->ReleaseStringUTFChars (env, host, hostname); if (result != CPNATIVE_OK) { JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); diff --git a/libjava/classpath/native/jni/java-nio/java_nio_VMDirectByteBuffer.c b/libjava/classpath/native/jni/java-nio/java_nio_VMDirectByteBuffer.c index bfee7e9dc08..7325c5b8b19 100644 --- a/libjava/classpath/native/jni/java-nio/java_nio_VMDirectByteBuffer.c +++ b/libjava/classpath/native/jni/java-nio/java_nio_VMDirectByteBuffer.c @@ -51,6 +51,13 @@ Java_java_nio_VMDirectByteBuffer_allocate { void *buffer; + if (capacity < 0) + { + JCL_ThrowException (env, "java/lang/IllegalArgumentException", + "negative capacity"); + return 0; + } + buffer = malloc (capacity); if (buffer == NULL) diff --git a/libjava/classpath/native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c b/libjava/classpath/native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c index d3e4f2b45a0..5916eb29bdd 100644 --- a/libjava/classpath/native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c +++ b/libjava/classpath/native/jni/midi-alsa/gnu_javax_sound_midi_alsa_AlsaPortDevice.c @@ -1,5 +1,5 @@ /* gnu_javax_sound_midi_alsa_AlsaPortDevice.c - Native support - Copyright (C) 2005, 2010 + Copyright (C) 2005, 2010, 2011 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ exception statement from your version. */ #include #include +#include #include JNIEXPORT void JNICALL @@ -48,6 +49,7 @@ Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1 (JNIEnv *env, jobject this __attribute__((unused)), jlong client, jlong port, jobject receiver) { + int rc; snd_seq_port_info_t *pinfo, *sinfo; snd_seq_port_subscribe_t *subs; snd_seq_addr_t sender, dest; @@ -57,12 +59,16 @@ Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1 snd_seq_port_info_alloca (&sinfo); snd_seq_port_subscribe_alloca (&subs); - snd_seq_open (&seq, "default", SND_SEQ_OPEN_DUPLEX, SND_SEQ_NONBLOCK); + rc = snd_seq_open (&seq, "default", SND_SEQ_OPEN_DUPLEX, SND_SEQ_NONBLOCK); + if (rc < 0) + JCL_ThrowException (env, "java/lang/InternalError", snd_strerror (rc)); snd_seq_port_info_set_capability (pinfo, SND_SEQ_PORT_CAP_WRITE); snd_seq_port_info_set_type (pinfo, SND_SEQ_PORT_TYPE_MIDI_GENERIC); - snd_seq_create_port (seq, pinfo); + rc = snd_seq_create_port (seq, pinfo); + if (rc < 0) + JCL_ThrowException (env, "java/lang/InternalError", snd_strerror (rc)); sender.client = (int) client; sender.port = (int) port; @@ -71,7 +77,9 @@ Java_gnu_javax_sound_midi_alsa_AlsaPortDevice_run_1receiver_1thread_1 snd_seq_port_subscribe_set_sender (subs, &sender); snd_seq_port_subscribe_set_dest (subs, &dest); - snd_seq_subscribe_port(seq, subs); + rc = snd_seq_subscribe_port(seq, subs); + if (rc < 0) + JCL_ThrowException (env, "java/lang/InternalError", snd_strerror (rc)); { int npfd; diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties index 5df9ef9d575..7ff626f7810 100644 --- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties +++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties @@ -18,24 +18,24 @@ digit=# percentFormat=#,##0% currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00 localPatternChars=GyMdkHmsSEDFwWahKzYeugAZvcL -currenciesDisplayName.INR=INR -currenciesDisplayName.JPY=JPY -currenciesDisplayName.ITL=ITL +currenciesDisplayName.BRL=BRL currenciesDisplayName.EUR=EUR currenciesDisplayName.GBP=GBP -currenciesDisplayName.BRL=BRL +currenciesDisplayName.INR=INR +currenciesDisplayName.ITL=ITL +currenciesDisplayName.JPY=JPY currenciesDisplayName.USD=USD -currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1welsh<}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 +territories.TN=Tunisia +territories.TO=Tonga +territories.TR=Turkia +territories.TT=Trinidad eta Tobago +territories.TV=Tuvalu +territories.TW=Taiwan +territories.TZ=Tanzania +territories.UA=Ukraina +territories.UG=Uganda +territories.UM=Estatu Batuetatik urruti dauden uharte txikiak +territories.US=Ameriketako Estatu Batuak +territories.UY=Uruguai +territories.UZ=Uzbekistan +territories.VA=Vatikano +territories.VC=Saint Vincent eta Grenadinak +territories.VE=Venezuela +territories.VG=Virginia uharteak (Erresuma Batua) +territories.VI=Virginia uharteak (Ameriketako Estatu Batuak) +territories.VN=Vietnam +territories.VU=Vanuatu +territories.WF=Wallis eta Futuna +territories.WS=Samoa +territories.YE=Yemen +territories.ZA=Hegoafrika +territories.ZM=Zambia +territories.ZW=Zimbabwe +languages.af=afrikaans +languages.am=amharikera +languages.ar=arabiera +languages.as=assamera languages.az=azerbaijanera -languages.ti=tigrinya -languages.th=thailandiera +languages.be=bielorrusiera +languages.bg=bulgariera +languages.bh=biharrera +languages.bn=bengalera +languages.br=bretoiera +languages.bs=bosniera +languages.ca=katalana +languages.cs=txekiera +languages.cy={0>welsh<}100{>galesera <0} +languages.da=daniera +languages.de=alemanera +languages.el=greziera +languages.en=ingelera +languages.en_AU=ingelesa (australia) +languages.en_GB=ingelesa (erresuma batua) 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.eo=esperantoa +languages.es=espainiera +languages.et=estoniera +languages.eu=euskara +languages.fa=pertsiera +languages.fi=finlandiera +languages.fil=tagalo +languages.fo=faroera +languages.fr=frantsesera +languages.fy=frisiarra +languages.ga=gaelikoa +languages.gd=eskoziar gaelikoa 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.gn=guaraniera +languages.gu=gujaratera +languages.he=hebreera +languages.hi=hindia +languages.hr=kroaziera +languages.hu=hungariera +languages.hy=armeniera +languages.ia=interlingua +languages.id=indonesiera +languages.ie=interlingue +languages.is=islandiera +languages.it=italiera +languages.ja=japoniera +languages.jv=javera +languages.ka=georgiera +languages.km=khemerera +languages.kn=kannada +languages.ko=koreera +languages.ku=kurduera +languages.ky=kirgizera +languages.la=latina +languages.ln=lingala +languages.lo=laosera +languages.lt=lituaniera +languages.lv=letoniera 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.ml=malayalamera +languages.mn=mongoliera +languages.mr=marathera +languages.ms=malaysiera +languages.mt=maltera +languages.ne=nepalera +languages.nl=nederlandera +languages.nn=norvegiera (nynorsk) +languages.no=norvegiera +languages.oc=okzitaniera +languages.or=oriya +languages.pa=punjabera +languages.pl=poloniera +languages.ps=paxtuera +languages.pt=portugalera 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.pt_PT=portugesa (portugal) languages.ro=errumaniera -languages.fa=pertsiera -languages.la=latina +languages.ru=errusiera +languages.sa=sanskritoa +languages.sd=sindhia +languages.sh=serbokroaziera +languages.si=sinhala +languages.sk=eslovakiera +languages.sl=esloveniera +languages.so=somaliera +languages.sq=albaniera +languages.sr=serbiera +languages.st=sesothoera +languages.su=sundanera +languages.sv=suediera +languages.sw=swahili +languages.ta=tamilera +languages.te=telugua +languages.th=thailandiera +languages.ti=tigrinya +languages.tk=turkmeniera +languages.tl=tagalog +languages.tlh=klingonera +languages.tr=turkiera +languages.tw=twia +languages.ug=uigurrera +languages.uk=ukrainera +languages.ur=urdu +languages.uz=uzbekera +languages.vi=vietnamera languages.xh=xhosa -languages.en_GB=ingelesa (erresuma batua) -languages.eu=euskara -languages.ky=kirgizera -languages.et=estoniera +languages.yi=yiddishera +languages.zh=txinera +languages.zh_Hans=txinera (soildua) +languages.zh_Hant=txinera (tradizionala) +languages.zu=zuluera diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties index 6c35d152ea7..21193c8edd4 100644 --- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties +++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties @@ -17,131 +17,131 @@ groupingSeparator=\u066c digit=# percentFormat='\u202a'%#,##0'\u202c' 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.AED=\u062f\u0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc +currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc \u0642\u062f\u06cc\u0645 +currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc +currenciesDisplayName.ALL=\u0644\u06a9 \u0622\u0644\u0628\u0627\u0646\u06cc +currenciesDisplayName.AMD=\u062f\u0631\u0645 \u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646 +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.ARS=\u067e\u0632\u0648\u06cc \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646 +currenciesDisplayName.ATS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0627\u062a\u0631\u06cc\u0634 +currenciesDisplayName.AUD=\u062f\u0644\u0627\u0631 \u0627\u0633\u062a\u0631\u0627\u0644\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.AZN=\u0645\u0646\u0627\u062a \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646 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.BBD=\u062f\u0644\u0627\u0631 \u0628\u0627\u0631\u0628\u0627\u062f\u0648\u0633 +currenciesDisplayName.BEF=\u0641\u0631\u0627\u0646\u06a9 \u0628\u0644\u0698\u06cc\u06a9 +currenciesDisplayName.BHD=\u062f\u06cc\u0646\u0627\u0631 \u0628\u062d\u0631\u06cc\u0646 +currenciesDisplayName.BIF=\u0641\u0631\u0627\u0646\u06a9 \u0628\u0648\u0631\u0648\u0646\u062f\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.BND=\u062f\u0644\u0627\u0631 \u0628\u0631\u0648\u0646\u0626\u06cc +currenciesDisplayName.BOP=\u067e\u0632\u0648\u06cc \u0628\u0648\u0644\u06cc\u0648\u06cc +currenciesDisplayName.BRL=\u0631\u0626\u0627\u0644 \u0628\u0631\u0632\u06cc\u0644 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.BYR=\u0631\u0648\u0628\u0644 \u0628\u06cc\u0644\u0648\u0631\u0648\u0633\u06cc +currenciesDisplayName.BZD=\u062f\u0644\u0627\u0631 \u0628\u0644\u06cc\u0632 +currenciesDisplayName.CAD=\u062f\u0644\u0627\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627 +currenciesDisplayName.CHF=\u0641\u0631\u0627\u0646\u06a9 \u0633\u0648\u0626\u06cc\u0633 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.CNY=\u06cc\u0648\u0622\u0646 \u0686\u06cc\u0646 +currenciesDisplayName.COP=\u067e\u0632\u0648\u06cc \u06a9\u0644\u0645\u0628\u06cc\u0627 +currenciesDisplayName.CSD=\u062f\u06cc\u0646\u0627\u0631 \u0642\u062f\u06cc\u0645 \u0635\u0631\u0628\u0633\u062a\u0627\u0646 +currenciesDisplayName.CUP=\u067e\u0632\u0648\u06cc \u06a9\u0648\u0628\u0627 currenciesDisplayName.DEM=\u0645\u0627\u0631\u06a9 \u0622\u0644\u0645\u0627\u0646 -currenciesDisplayName.RUB=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647 -currenciesDisplayName.UZS=\u0633\u0648\u0645 \u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646 +currenciesDisplayName.DJF=\u0641\u0631\u0627\u0646\u06a9 \u062c\u06cc\u0628\u0648\u062a\u06cc 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.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.DOP=\u067e\u0632\u0648\u06cc \u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0627 +currenciesDisplayName.DZD=\u062f\u06cc\u0646\u0627\u0631 \u0627\u0644\u062c\u0632\u0627\u06cc\u0631 +currenciesDisplayName.EUR=\u06cc\u0648\u0631\u0648 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.SGD=\u062f\u0644\u0627\u0631 \u0633\u0646\u06af\u0627\u067e\u0648\u0631 -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.FRF=\u0641\u0631\u0627\u0646\u06a9 \u0641\u0631\u0627\u0646\u0633\u0647 +currenciesDisplayName.GBP=\u067e\u0648\u0646\u062f \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627 +currenciesDisplayName.GNF=\u0641\u0631\u0627\u0646\u06a9 \u06af\u06cc\u0646\u0647 +currenciesDisplayName.GRD=\u062f\u0631\u0627\u062e\u0645\u0627\u06cc \u06cc\u0648\u0646\u0627\u0646 +currenciesDisplayName.GWP=\u067e\u0632\u0648\u06cc \u06af\u06cc\u0646\u0647\u0654 \u0628\u06cc\u0633\u0627\u0626\u0648 +currenciesDisplayName.GYD=\u062f\u0644\u0627\u0631 \u06af\u0648\u06cc\u0627\u0646 +currenciesDisplayName.HKD=\u062f\u0644\u0627\u0631 \u0647\u0646\u06af\u200c\u06a9\u0646\u06af +currenciesDisplayName.HRD=\u062f\u06cc\u0646\u0627\u0631 \u06a9\u0631\u0648\u0627\u0633\u06cc 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.IDR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc +currenciesDisplayName.IEP=\u067e\u0648\u0646\u062f \u0627\u06cc\u0631\u0644\u0646\u062f 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.IQD=\u062f\u06cc\u0646\u0627\u0631 \u0639\u0631\u0627\u0642 +currenciesDisplayName.IRR=\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646 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.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.YDD=\u062f\u06cc\u0646\u0627\u0631 \u06cc\u0645\u0646 currenciesDisplayName.JMD=\u062f\u0644\u0627\u0631 \u062c\u0627\u0645\u0627\u0626\u06cc\u06a9\u0627 +currenciesDisplayName.JOD=\u062f\u06cc\u0646\u0627\u0631 \u0627\u0631\u062f\u0646 +currenciesDisplayName.JPY=\u06cc\u0646 \u0698\u0627\u067e\u0646 +currenciesDisplayName.KES=\u0634\u06cc\u0644\u06cc\u0646\u06af \u06a9\u0646\u06cc\u0627 +currenciesDisplayName.KMF=\u0641\u0631\u0627\u0646\u06a9 \u06a9\u0648\u0645\u0648\u0631\u0648 +currenciesDisplayName.KWD=\u062f\u06cc\u0646\u0627\u0631 \u06a9\u0648\u06cc\u062a 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.LKR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0633\u0631\u06cc\u200c\u0644\u0627\u0646\u06a9\u0627 +currenciesDisplayName.LRD=\u062f\u0644\u0627\u0631 \u0644\u06cc\u0628\u0631\u06cc\u0627 +currenciesDisplayName.LUF=\u0641\u0631\u0627\u0646\u06a9 \u0644\u0648\u06a9\u0632\u0627\u0645\u0628\u0648\u0631\u06af +currenciesDisplayName.LVR=\u0631\u0648\u0628\u0644 \u0644\u062a\u0648\u0646\u06cc +currenciesDisplayName.LYD=\u062f\u06cc\u0646\u0627\u0631 \u0644\u06cc\u0628\u06cc +currenciesDisplayName.MAD=\u062f\u0631\u0647\u0645 \u0645\u0631\u0627\u06a9\u0634 +currenciesDisplayName.MAF=\u0641\u0631\u0627\u0646\u06a9 \u0645\u0631\u0627\u06a9\u0634 +currenciesDisplayName.MGF=\u0641\u0631\u0627\u0646\u06a9 \u0645\u0627\u062f\u0627\u06af\u0627\u0633\u06a9\u0627\u0631 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.MTL=\u0644\u06cc\u0631\u0647\u0654 \u0645\u0627\u0644\u062a +currenciesDisplayName.MTP=\u067e\u0648\u0646\u062f \u0645\u0627\u0644\u062a 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 -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.NAD=\u062f\u0644\u0627\u0631 \u0646\u0627\u0645\u06cc\u0628\u06cc\u0627 +currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0644\u0646\u062f +currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0631\u0648\u0698 +currenciesDisplayName.NPR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0646\u067e\u0627\u0644 +currenciesDisplayName.NZD=\u062f\u0644\u0627\u0631 \u0632\u0644\u0627\u0646\u062f \u0646\u0648 +currenciesDisplayName.OMR=\u0631\u06cc\u0627\u0644 \u0639\u0645\u0627\u0646 +currenciesDisplayName.PHP=\u067e\u0632\u0648\u06cc \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646 +currenciesDisplayName.PKR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646 +currenciesDisplayName.PLN=\u0632\u0648\u0627\u062a\u06cc \u0644\u0647\u0633\u062a\u0627\u0646 +currenciesDisplayName.QAR=\u0631\u06cc\u0627\u0644 \u0642\u0637\u0631 +currenciesDisplayName.RHD=\u062f\u0644\u0627\u0631 \u0631\u0648\u062f\u0632\u06cc\u0627 +currenciesDisplayName.RSD=\u062f\u06cc\u0646\u0627\u0631 \u0635\u0631\u0628\u0633\u062a\u0627\u0646 +currenciesDisplayName.RUB=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647 +currenciesDisplayName.RUR=\u0631\u0648\u0628\u0644 \u0642\u062f\u06cc\u0645 \u0631\u0648\u0633\u06cc\u0647 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.SAR=\u0631\u06cc\u0627\u0644 \u0633\u0639\u0648\u062f\u06cc +currenciesDisplayName.SBD=\u062f\u0644\u0627\u0631 \u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646 currenciesDisplayName.SDD=\u062f\u06cc\u0646\u0627\u0631 \u0642\u062f\u06cc\u0645 \u0633\u0648\u062f\u0627\u0646 +currenciesDisplayName.SEK=\u06a9\u0631\u0648\u0646 \u0633\u0648\u0626\u062f +currenciesDisplayName.SGD=\u062f\u0644\u0627\u0631 \u0633\u0646\u06af\u0627\u067e\u0648\u0631 +currenciesDisplayName.SRD=\u062f\u0644\u0627\u0631 \u0633\u0648\u0631\u06cc\u0646\u0627\u0645 +currenciesDisplayName.SRG=\u06af\u06cc\u0644\u062f\u0631 \u0633\u0648\u0631\u06cc\u0646\u0627\u0645 +currenciesDisplayName.SUR=\u0631\u0648\u0628\u0644 \u0634\u0648\u0631\u0648\u06cc +currenciesDisplayName.SYP=\u0644\u06cc\u0631\u0647\u0654 \u0633\u0648\u0631\u06cc\u0647 +currenciesDisplayName.THB=\u0628\u0627\u062a \u062a\u0627\u06cc\u0644\u0646\u062f +currenciesDisplayName.TJR=\u0631\u0648\u0628\u0644 \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646 +currenciesDisplayName.TJS=\u0633\u0627\u0645\u0627\u0646\u06cc \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646 +currenciesDisplayName.TMM=\u0645\u0646\u0627\u062a \u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646 +currenciesDisplayName.TND=\u062f\u06cc\u0646\u0627\u0631 \u062a\u0648\u0646\u0633 +currenciesDisplayName.TRL=\u0644\u06cc\u0631\u0647\u0654 \u0642\u062f\u06cc\u0645 \u062a\u0631\u06a9\u06cc\u0647 +currenciesDisplayName.TRY=\u0644\u06cc\u0631\u0647\u0654 \u062a\u0631\u06a9\u06cc\u0647 +currenciesDisplayName.TTD=\u062f\u0644\u0627\u0631 \u062a\u0631\u06cc\u0646\u06cc\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u06af\u0648 +currenciesDisplayName.TWD=\u062f\u0644\u0627\u0631 \u062c\u062f\u06cc\u062f \u062a\u0627\u06cc\u0648\u0627\u0646 +currenciesDisplayName.TZS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u062a\u0627\u0646\u0632\u0627\u0646\u06cc\u0627 +currenciesDisplayName.UGS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0642\u062f\u06cc\u0645 \u0627\u0648\u06af\u0627\u0646\u062f\u0627 +currenciesDisplayName.UGX=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0627\u0648\u06af\u0627\u0646\u062f\u0627 +currenciesDisplayName.USD=\u062f\u0644\u0627\u0631 \u0627\u0645\u0631\u06cc\u06a9\u0627 +currenciesDisplayName.UZS=\u0633\u0648\u0645 \u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646 +currenciesDisplayName.XAG=\u0646\u0642\u0631\u0647 +currenciesDisplayName.XAU=\u0637\u0644\u0627 +currenciesDisplayName.XCD=\u062f\u0644\u0627\u0631 \u0634\u0631\u0642 \u06a9\u0627\u0631\u0627\u0626\u06cc\u0628 +currenciesDisplayName.XFO=\u0641\u0631\u0627\u0646\u06a9 \u0637\u0644\u0627\u06cc \u0641\u0631\u0627\u0646\u0633\u0647 +currenciesDisplayName.XPD=\u067e\u0627\u0644\u0627\u062f\u06cc\u0645 +currenciesDisplayName.XPT=\u067e\u0644\u0627\u062a\u06cc\u0646 +currenciesDisplayName.XXX=\u0627\u0631\u0632 \u0646\u0627\u0645\u0634\u062e\u0635 \u06cc\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 +currenciesDisplayName.YDD=\u062f\u06cc\u0646\u0627\u0631 \u06cc\u0645\u0646 +currenciesDisplayName.YER=\u0631\u06cc\u0627\u0644 \u06cc\u0645\u0646 +currenciesDisplayName.ZAR=\u0631\u0627\u0646\u062f \u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc +currenciesDisplayName.ZWD=\u062f\u0644\u0627\u0631 \u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u0647 currenciesSymbol.IRR=\ufdfc -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 +shortMonths=\u0698\u0627\u0646\u0648\u06cc\u0647\u0654\u00ae\u0641\u0648\u0631\u06cc\u0647\u0654\u00ae\u0645\u0627\u0631\u0633\u00ae\u0622\u0648\u0631\u06cc\u0644\u00ae\u0645\u0647\u0654\u00ae\u0698\u0648\u0626\u0646\u00ae\u0698\u0648\u0626\u06cc\u0647\u0654\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 +months=\u0698\u0627\u0646\u0648\u06cc\u0647\u0654\u00ae\u0641\u0648\u0631\u06cc\u0647\u0654\u00ae\u0645\u0627\u0631\u0633\u00ae\u0622\u0648\u0631\u06cc\u0644\u00ae\u0645\u0647\u0654\u00ae\u0698\u0648\u0626\u0646\u00ae\u0698\u0648\u0626\u06cc\u0647\u0654\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 +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 +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 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 @@ -152,797 +152,797 @@ shortTimeFormat=H:mm mediumTimeFormat=H:mm:ss longTimeFormat=H:mm:ss (zzzz) fullTimeFormat=H:mm:ss (zzzz) -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 -territories.TH=\u062a\u0627\u06cc\u0644\u0646\u062f -territories.TG=\u062a\u0648\u06af\u0648 -territories.TF=\u0645\u0633\u062a\u0639\u0645\u0631\u0647\u200c\u0647\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc \u0641\u0631\u0627\u0646\u0633\u0647 -territories.GY=\u06af\u0648\u06cc\u0627\u0646 -territories.TD=\u0686\u0627\u062f -territories.TC=\u062c\u0632\u0627\u06cc\u0631 \u062a\u0631\u06a9 \u0648 \u06a9\u0627\u06cc\u06a9\u0648\u0633 -territories.GW=\u06af\u06cc\u0646\u0647\u0654 \u0628\u06cc\u0633\u0627\u0626\u0648 -territories.GU=\u06af\u0648\u0627\u0645 -territories.GT=\u06af\u0648\u0627\u062a\u0645\u0627\u0644\u0627 -territories.GS=\u062c\u0648\u0631\u062c\u06cc\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc \u0648 \u062c\u0632\u0627\u06cc\u0631 \u0633\u0627\u0646\u062f\u0648\u06cc\u0686 \u062c\u0646\u0648\u0628\u06cc -territories.GR=\u06cc\u0648\u0646\u0627\u0646 -territories.GQ=\u06af\u06cc\u0646\u0647\u0654 \u0627\u0633\u062a\u0648\u0627\u06cc\u06cc -territories.GP=\u06af\u0648\u0627\u062f\u0644\u0648\u067e -territories.SZ=\u0633\u0648\u0627\u0632\u06cc\u0644\u0646\u062f -territories.SY=\u0633\u0648\u0631\u06cc\u0647 -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.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 +zoneStrings=Afghanistan\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\u00a9Africa_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\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\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\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\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\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\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\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\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\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\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\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\u00a9Argentina_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646\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\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\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\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\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\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\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\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\u00a9Bangladesh\u00ae\u0648\u0642\u062a \u0628\u0646\u06af\u0644\u0627\u062f\u0634\u00ae\u00ae\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\u00a9Bhutan\u00ae\u0648\u0642\u062a \u0628\u0648\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Bolivia\u00ae\u0648\u0642\u062a \u0628\u0648\u0644\u06cc\u0648\u06cc\u00ae\u00ae\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\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\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\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\u00a9Christmas\u00ae\u0648\u0642\u062a \u062c\u0632\u06cc\u0631\u0647\u0654 \u06a9\u0631\u06cc\u0633\u0645\u0633\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u0648\u0633\u00ae\u00ae\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\u00a9Cook\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\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\u00a9Davis\u00ae\u0648\u0642\u062a \u062f\u06cc\u0648\u06cc\u0633\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\u00a9Dutch_Guiana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646 \u0647\u0644\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9East_Timor\u00ae\u0648\u0642\u062a \u062a\u06cc\u0645\u0648\u0631 \u0634\u0631\u0642\u06cc\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\u00a9Ecuador\u00ae\u0648\u0642\u062a \u0627\u06a9\u0648\u0627\u062f\u0648\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Europe_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\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\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\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\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\u00a9French_Guiana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646 \u0641\u0631\u0627\u0646\u0633\u0647\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u0648\u0642\u062a \u06af\u0631\u06cc\u0646\u0648\u06cc\u0686\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00ae\u0648\u0642\u062a \u06af\u0627\u0644\u0627\u067e\u0627\u06af\u0648\u0633\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\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\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\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\u00a9Guam\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06af\u0648\u0627\u0645\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646\u00ae\u00ae\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\u00a9India\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0647\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00ae\u0648\u0642\u062a \u0627\u0642\u06cc\u0627\u0646\u0648\u0633 \u0647\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9Indochina\u00ae\u0648\u0642\u062a \u0647\u0646\u062f\u0648\u0686\u06cc\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \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\u00a9Indonesia_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u00ae\u00ae\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\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\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\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\u00a9Karachi\u00ae\u0648\u0642\u062a \u06a9\u0631\u0627\u0686\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00ae\u0648\u0642\u062a \u06a9\u0627\u0634\u063a\u0631\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\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\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\u00a9Kyrgystan\u00ae\u0648\u0642\u062a \u0642\u0631\u0642\u06cc\u0632\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00ae\u0648\u0642\u062a \u0644\u0627\u0646\u06a9\u0627\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\u00a9Malaysia\u00ae\u0648\u0642\u062a \u0645\u0627\u0644\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00ae\u0648\u0642\u062a \u0645\u0627\u0644\u062f\u06cc\u0648\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\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\u00a9Myanmar\u00ae\u0648\u0642\u062a \u0645\u06cc\u0627\u0646\u0645\u0627\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Nauru\u00ae\u0648\u0642\u062a \u0646\u0627\u0626\u0648\u0631\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u0648\u0642\u062a \u0646\u067e\u0627\u0644\u00ae\u00ae\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\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\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\u00a9Palau\u00ae\u0648\u0642\u062a \u067e\u0627\u0644\u0627\u0626\u0648\u00ae\u00ae\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\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\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\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\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\u00a9Samoa\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0633\u0627\u0645\u0648\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00ae\u0648\u0642\u062a \u0633\u06cc\u0634\u0644\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0633\u0646\u06af\u0627\u067e\u0648\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646\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\u00a9Suriname\u00ae\u0648\u0642\u062a \u0633\u0648\u0631\u06cc\u0646\u0627\u0645\u00ae\u00ae\u00ae\u00ae\u00a9Tahiti\u00ae\u0648\u0642\u062a \u062a\u0627\u0647\u06cc\u062a\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Tajikistan\u00ae\u0648\u0642\u062a \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646\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\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\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\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\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\u00a9Tuvalu\u00ae\u0648\u0642\u062a \u062a\u0648\u0648\u0627\u0644\u0648\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\u00a9Urumqi\u00ae\u0648\u0642\u062a \u0627\u0631\u0648\u0645\u0686\u06cc\u00ae\u00ae\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\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\u00a9Venezuela\u00ae\u0648\u0642\u062a \u0648\u0646\u0632\u0648\u0626\u0644\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00ae\u0648\u0642\u062a \u062c\u0632\u06cc\u0631\u0647\u0654 \u0648\u06cc\u06a9\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\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\u00a9 +territories.001=\u062c\u0647\u0627\u0646 +territories.002=\u0627\u0641\u0631\u06cc\u0642\u0627 +territories.003=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc +territories.005=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc +territories.009=\u0627\u0642\u06cc\u0627\u0646\u0648\u0633\u06cc\u0647 +territories.011=\u063a\u0631\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627 +territories.013=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc +territories.014=\u0634\u0631\u0642 \u0627\u0641\u0631\u06cc\u0642\u0627 +territories.015=\u0634\u0645\u0627\u0644 \u0627\u0641\u0631\u06cc\u0642\u0627 +territories.017=\u0645\u0631\u06a9\u0632 \u0627\u0641\u0631\u06cc\u0642\u0627 +territories.018=\u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627 +territories.019=\u0627\u0645\u0631\u06cc\u06a9\u0627 +territories.021=\u0634\u0645\u0627\u0644 \u0627\u0645\u0631\u06cc\u06a9\u0627 +territories.029=\u06a9\u0627\u0631\u0627\u0626\u06cc\u0628 +territories.030=\u0634\u0631\u0642 \u0622\u0633\u06cc\u0627 +territories.034=\u062c\u0646\u0648\u0628 \u0622\u0633\u06cc\u0627 +territories.035=\u062c\u0646\u0648\u0628 \u0634\u0631\u0642\u06cc \u0622\u0633\u06cc\u0627 +territories.039=\u062c\u0646\u0648\u0628 \u0627\u0631\u0648\u067e\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.057=\u0646\u0627\u062d\u06cc\u0647\u0654 \u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc 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 -territories.GD=\u06af\u0631\u0627\u0646\u0627\u062f\u0627 -territories.SN=\u0633\u0646\u06af\u0627\u0644 -territories.SM=\u0633\u0627\u0646 \u0645\u0627\u0631\u06cc\u0646\u0648 -territories.GB=\u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627 -territories.SL=\u0633\u06cc\u0631\u0627\u0644\u0626\u0648\u0646 -territories.GA=\u06af\u0627\u0628\u0648\u0646 -territories.SK=\u0627\u0633\u0644\u0648\u0627\u06a9\u06cc -territories.SJ=\u0627\u0633\u0648\u0627\u0644\u0628\u0627\u0631\u062f \u0648 \u062c\u0627\u0646 \u0645\u0627\u06cc\u0646 -territories.SI=\u0627\u0633\u0644\u0648\u0648\u0646\u06cc -territories.SH=\u0633\u0646\u062a \u0647\u0644\u0646 -territories.SG=\u0633\u0646\u06af\u0627\u067e\u0648\u0631 -territories.SE=\u0633\u0648\u0626\u062f -territories.SD=\u0633\u0648\u062f\u0627\u0646 -territories.SC=\u0633\u06cc\u0634\u0644 -territories.SB=\u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646 -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.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.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 -territories.PN=\u067e\u06cc\u062a\u06a9\u0627\u06cc\u0631\u0646 -territories.PM=\u0633\u0646\u062a \u067e\u06cc\u0631 \u0648 \u0645\u06cc\u06a9\u0644\u0648\u0646 -territories.PL=\u0644\u0647\u0633\u062a\u0627\u0646 -territories.PK=\u067e\u0627\u06a9\u0633\u062a\u0627\u0646 -territories.PH=\u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646 -territories.PG=\u067e\u0627\u067e\u0648\u0627 \u06af\u06cc\u0646\u0647\u0654 \u0646\u0648 -territories.PF=\u067e\u0644\u06cc\u200c\u0646\u0632\u06cc \u0641\u0631\u0627\u0646\u0633\u0647 -territories.CZ=\u062c\u0645\u0647\u0648\u0631\u06cc \u0686\u06a9 -territories.PE=\u067e\u0631\u0648 -territories.CY=\u0642\u0628\u0631\u0633 -territories.CX=\u062c\u0632\u06cc\u0631\u0647\u0654 \u06a9\u0631\u06cc\u0633\u0645\u0633 -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 \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 -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.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\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=\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 -territories.419=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0644\u0627\u062a\u06cc\u0646 \u0648 \u06a9\u0627\u0631\u0627\u0626\u06cc\u0628 -territories.BZ=\u0628\u0644\u06cc\u0632 -territories.BY=\u0628\u06cc\u0644\u0648\u0631\u0648\u0633\u06cc -territories.BW=\u0628\u0648\u062a\u0633\u0648\u0627\u0646\u0627 -territories.BV=\u062c\u0632\u06cc\u0631\u0647\u0654 \u0628\u0648\u0648\u062a -territories.BT=\u0628\u0648\u062a\u0627\u0646 -territories.BS=\u0628\u0627\u0647\u0627\u0645\u0627 -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.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.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.011=\u063a\u0631\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627 -territories.BI=\u0628\u0648\u0631\u0648\u0646\u062f\u06cc +territories.062=\u062c\u0646\u0648\u0628 \u0622\u0633\u06cc\u0627 \u0648 \u0622\u0633\u06cc\u0627\u06cc \u0645\u06cc\u0627\u0646\u0647 +territories.142=\u0622\u0633\u06cc\u0627 +territories.143=\u0622\u0633\u06cc\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc +territories.145=\u063a\u0631\u0628 \u0622\u0633\u06cc\u0627 +territories.150=\u0627\u0631\u0648\u067e\u0627 +territories.151=\u0634\u0631\u0642 \u0627\u0631\u0648\u067e\u0627 +territories.154=\u0634\u0645\u0627\u0644 \u0627\u0631\u0648\u067e\u0627 +territories.155=\u063a\u0631\u0628 \u0627\u0631\u0648\u067e\u0627 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 -territories.ZW=\u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u0647 -territories.NL=\u0647\u0644\u0646\u062f -territories.BA=\u0628\u0648\u0633\u0646\u06cc \u0648 \u0647\u0631\u0632\u06af\u0648\u06cc\u0646 -territories.NI=\u0646\u06cc\u06a9\u0627\u0631\u0627\u06af\u0648\u0626\u0647 -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 -territories.NA=\u0646\u0627\u0645\u06cc\u0628\u06cc\u0627 -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.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.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 -territories.003=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc -territories.ZA=\u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc -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.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 -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 +territories.419=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0644\u0627\u062a\u06cc\u0646 \u0648 \u06a9\u0627\u0631\u0627\u0626\u06cc\u0628 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 -territories.ML=\u0645\u0627\u0644\u06cc -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 -territories.YE=\u06cc\u0645\u0646 -territories.LY=\u0644\u06cc\u0628\u06cc -territories.LV=\u0644\u062a\u0648\u0646\u06cc -territories.155=\u063a\u0631\u0628 \u0627\u0631\u0648\u067e\u0627 -territories.LU=\u0644\u0648\u06a9\u0632\u0627\u0645\u0628\u0648\u0631\u06af -territories.154=\u0634\u0645\u0627\u0644 \u0627\u0631\u0648\u067e\u0627 -territories.LT=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc -territories.LS=\u0644\u0633\u0648\u062a\u0648 -territories.LR=\u0644\u06cc\u0628\u0631\u06cc\u0627 -territories.151=\u0634\u0631\u0642 \u0627\u0631\u0648\u067e\u0627 -territories.150=\u0627\u0631\u0648\u067e\u0627 -territories.LK=\u0633\u0631\u06cc\u200c\u0644\u0627\u0646\u06a9\u0627 -territories.LI=\u0644\u06cc\u062e\u062a\u0646\u200c\u0627\u0634\u062a\u0627\u06cc\u0646 -territories.LC=\u0633\u0646\u062a \u0644\u0648\u0633\u06cc\u0627 -territories.LB=\u0644\u0628\u0646\u0627\u0646 -territories.LA=\u0644\u0627\u0626\u0648\u0633 -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 -territories.KN=\u0633\u0646\u062a \u06a9\u06cc\u062a\u0633 \u0648 \u0646\u0648\u06cc\u0633 -territories.KM=\u06a9\u0648\u0645\u0648\u0631\u0648 -territories.KI=\u06a9\u06cc\u0631\u06cc\u0628\u0627\u062a\u06cc -territories.WS=\u0633\u0627\u0645\u0648\u0627 -territories.KH=\u06a9\u0627\u0645\u0628\u0648\u062c -territories.KG=\u0642\u0631\u0642\u06cc\u0632\u0633\u062a\u0627\u0646 -territories.KE=\u06a9\u0646\u06cc\u0627 -territories.WF=\u0648\u0627\u0644\u06cc\u0633 \u0648 \u0641\u06cc\u0648\u062a\u0648\u0646\u0627 -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 \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 -territories.IT=\u0627\u06cc\u062a\u0627\u0644\u06cc\u0627 -territories.IS=\u0627\u06cc\u0633\u0644\u0646\u062f -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=\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 -territories.ID=\u0627\u0646\u062f\u0648\u0646\u0632\u06cc -territories.UM=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u0686\u06a9 \u062f\u0648\u0631\u0627\u0641\u062a\u0627\u062f\u0647\u0654 \u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647 -territories.UG=\u0627\u0648\u06af\u0627\u0646\u062f\u0627 -territories.UA=\u0627\u0648\u06a9\u0631\u0627\u06cc\u0646 -territories.HU=\u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646 -territories.HT=\u0647\u0627\u06cc\u06cc\u062a\u06cc -territories.HR=\u06a9\u0631\u0648\u0627\u0633\u06cc -territories.TZ=\u062a\u0627\u0646\u0632\u0627\u0646\u06cc\u0627 -territories.HN=\u0647\u0646\u062f\u0648\u0631\u0627\u0633 +territories.AE=\u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc +territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 +territories.AG=\u0622\u0646\u062a\u06cc\u06af\u0648\u0627 \u0648 \u0628\u0627\u0631\u0628\u0648\u062f\u0627 +territories.AI=\u0622\u0646\u06af\u06cc\u0644 +territories.AL=\u0622\u0644\u0628\u0627\u0646\u06cc +territories.AM=\u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646 +territories.AN=\u0622\u0646\u062a\u06cc\u0644 \u0647\u0644\u0646\u062f +territories.AO=\u0622\u0646\u06af\u0648\u0644\u0627 +territories.AQ=\u062c\u0646\u0648\u0628\u06af\u0627\u0646 +territories.AR=\u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646 +territories.AS=\u0633\u0627\u0645\u0648\u0627\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627 +territories.AT=\u0627\u062a\u0631\u06cc\u0634 +territories.AU=\u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627 +territories.AW=\u0622\u0631\u0648\u0628\u0627 +territories.AX=\u062c\u0632\u0627\u06cc\u0631 \u0622\u0644\u0627\u0646\u062f +territories.AZ=\u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646 +territories.BA=\u0628\u0648\u0633\u0646\u06cc \u0648 \u0647\u0631\u0632\u06af\u0648\u06cc\u0646 +territories.BB=\u0628\u0627\u0631\u0628\u0627\u062f\u0648\u0633 +territories.BD=\u0628\u0646\u06af\u0644\u0627\u062f\u0634 +territories.BE=\u0628\u0644\u0698\u06cc\u06a9 +territories.BF=\u0628\u0648\u0631\u06a9\u06cc\u0646\u0627\u0641\u0627\u0633\u0648 +territories.BG=\u0628\u0644\u063a\u0627\u0631\u0633\u062a\u0627\u0646 +territories.BH=\u0628\u062d\u0631\u06cc\u0646 +territories.BI=\u0628\u0648\u0631\u0648\u0646\u062f\u06cc +territories.BJ=\u0628\u0646\u06cc\u0646 +territories.BL=\u0633\u0646\u062a \u0628\u0627\u0631\u062a\u0644\u06cc\u0645\u06cc +territories.BM=\u0628\u0631\u0645\u0648\u062f\u0627 +territories.BN=\u0628\u0631\u0648\u0646\u0626\u06cc +territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc +territories.BR=\u0628\u0631\u0632\u06cc\u0644 +territories.BS=\u0628\u0627\u0647\u0627\u0645\u0627 +territories.BT=\u0628\u0648\u062a\u0627\u0646 +territories.BV=\u062c\u0632\u06cc\u0631\u0647\u0654 \u0628\u0648\u0648\u062a +territories.BW=\u0628\u0648\u062a\u0633\u0648\u0627\u0646\u0627 +territories.BY=\u0628\u06cc\u0644\u0648\u0631\u0648\u0633\u06cc +territories.BZ=\u0628\u0644\u06cc\u0632 +territories.CA=\u06a9\u0627\u0646\u0627\u062f\u0627 +territories.CC=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u0648\u0633 +territories.CD=\u06a9\u0646\u06af\u0648 \u06a9\u06cc\u0646\u0634\u0627\u0633\u0627 +territories.CF=\u062c\u0645\u0647\u0648\u0631\u06cc \u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc +territories.CG=\u06a9\u0646\u06af\u0648 \u0628\u0631\u0627\u0632\u0648\u06cc\u0644 +territories.CH=\u0633\u0648\u0626\u06cc\u0633 +territories.CI=\u0633\u0627\u062d\u0644 \u0639\u0627\u062c +territories.CK=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9 +territories.CL=\u0634\u06cc\u0644\u06cc +territories.CM=\u06a9\u0627\u0645\u0631\u0648\u0646 +territories.CN=\u0686\u06cc\u0646 +territories.CO=\u06a9\u0644\u0645\u0628\u06cc\u0627 +territories.CR=\u06a9\u0627\u0633\u062a\u0627\u0631\u06cc\u06a9\u0627 +territories.CS=\u0635\u0631\u0628\u0633\u062a\u0627\u0646 \u0648 \u0645\u0648\u0646\u062a\u0647\u200c\u0646\u06af\u0631\u0648 +territories.CU=\u06a9\u0648\u0628\u0627 +territories.CV=\u06a9\u06cc\u067e \u0648\u0631\u062f +territories.CX=\u062c\u0632\u06cc\u0631\u0647\u0654 \u06a9\u0631\u06cc\u0633\u0645\u0633 +territories.CY=\u0642\u0628\u0631\u0633 +territories.CZ=\u062c\u0645\u0647\u0648\u0631\u06cc \u0686\u06a9 +territories.DE=\u0622\u0644\u0645\u0627\u0646 +territories.DJ=\u062c\u06cc\u0628\u0648\u062a\u06cc +territories.DK=\u062f\u0627\u0646\u0645\u0627\u0631\u06a9 +territories.DM=\u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9 +territories.DO=\u062c\u0645\u0647\u0648\u0631\u06cc \u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0646 +territories.DZ=\u0627\u0644\u062c\u0632\u0627\u06cc\u0631 +territories.EC=\u0627\u06a9\u0648\u0627\u062f\u0631 +territories.EE=\u0627\u0633\u062a\u0648\u0646\u06cc +territories.EG=\u0645\u0635\u0631 +territories.EH=\u0635\u062d\u0631\u0627\u06cc \u063a\u0631\u0628\u06cc +territories.ER=\u0627\u0631\u06cc\u062a\u0631\u0647 +territories.ES=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627 +territories.ET=\u0627\u062a\u06cc\u0648\u067e\u06cc +territories.FI=\u0641\u0646\u0644\u0627\u0646\u062f +territories.FJ=\u0641\u06cc\u062c\u06cc +territories.FK=\u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0644\u06a9\u0644\u0646\u062f +territories.FM=\u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc +territories.FO=\u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0631\u0648 +territories.FR=\u0641\u0631\u0627\u0646\u0633\u0647 +territories.GA=\u06af\u0627\u0628\u0648\u0646 +territories.GB=\u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627 +territories.GD=\u06af\u0631\u0627\u0646\u0627\u062f\u0627 +territories.GE=\u06af\u0631\u062c\u0633\u062a\u0627\u0646 +territories.GF=\u06af\u0648\u06cc\u0627\u0646 \u0641\u0631\u0627\u0646\u0633\u0647 +territories.GG=\u06af\u0648\u0631\u0646\u0633\u06cc +territories.GH=\u063a\u0646\u0627 +territories.GI=\u06af\u06cc\u0628\u0631\u0627\u0644\u062a\u0627\u0631 +territories.GL=\u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f +territories.GM=\u06af\u0627\u0645\u0628\u06cc\u0627 +territories.GN=\u06af\u06cc\u0646\u0647 +territories.GP=\u06af\u0648\u0627\u062f\u0644\u0648\u067e +territories.GQ=\u06af\u06cc\u0646\u0647\u0654 \u0627\u0633\u062a\u0648\u0627\u06cc\u06cc +territories.GR=\u06cc\u0648\u0646\u0627\u0646 +territories.GS=\u062c\u0648\u0631\u062c\u06cc\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc \u0648 \u062c\u0632\u0627\u06cc\u0631 \u0633\u0627\u0646\u062f\u0648\u06cc\u0686 \u062c\u0646\u0648\u0628\u06cc +territories.GT=\u06af\u0648\u0627\u062a\u0645\u0627\u0644\u0627 +territories.GU=\u06af\u0648\u0627\u0645 +territories.GW=\u06af\u06cc\u0646\u0647\u0654 \u0628\u06cc\u0633\u0627\u0626\u0648 +territories.GY=\u06af\u0648\u06cc\u0627\u0646 +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.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 -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.HN=\u0647\u0646\u062f\u0648\u0631\u0627\u0633 +territories.HR=\u06a9\u0631\u0648\u0627\u0633\u06cc +territories.HT=\u0647\u0627\u06cc\u06cc\u062a\u06cc +territories.HU=\u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646 +territories.ID=\u0627\u0646\u062f\u0648\u0646\u0632\u06cc +territories.IE=\u0627\u06cc\u0631\u0644\u0646\u062f +territories.IL=\u0627\u0633\u0631\u0627\u0626\u06cc\u0644 +territories.IM=IM +territories.IN=\u0647\u0646\u062f +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.IQ=\u0639\u0631\u0627\u0642 +territories.IR=\u0627\u06cc\u0631\u0627\u0646 +territories.IS=\u0627\u06cc\u0633\u0644\u0646\u062f +territories.IT=\u0627\u06cc\u062a\u0627\u0644\u06cc\u0627 +territories.JE=\u062c\u0631\u0633\u06cc +territories.JM=\u062c\u0627\u0645\u0627\u0626\u06cc\u06a9\u0627 +territories.JO=\u0627\u0631\u062f\u0646 +territories.JP=\u0698\u0627\u067e\u0646 +territories.KE=\u06a9\u0646\u06cc\u0627 +territories.KG=\u0642\u0631\u0642\u06cc\u0632\u0633\u062a\u0627\u0646 +territories.KH=\u06a9\u0627\u0645\u0628\u0648\u062c +territories.KI=\u06a9\u06cc\u0631\u06cc\u0628\u0627\u062a\u06cc +territories.KM=\u06a9\u0648\u0645\u0648\u0631\u0648 +territories.KN=\u0633\u0646\u062a \u06a9\u06cc\u062a\u0633 \u0648 \u0646\u0648\u06cc\u0633 +territories.KP=\u06a9\u0631\u0647\u0654 \u0634\u0645\u0627\u0644\u06cc +territories.KR=\u06a9\u0631\u0647\u0654 \u062c\u0646\u0648\u0628\u06cc +territories.KW=\u06a9\u0648\u06cc\u062a +territories.KY=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0650\u06cc\u0645\u0646 +territories.KZ=\u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646 +territories.LA=\u0644\u0627\u0626\u0648\u0633 +territories.LB=\u0644\u0628\u0646\u0627\u0646 +territories.LC=\u0633\u0646\u062a \u0644\u0648\u0633\u06cc\u0627 +territories.LI=\u0644\u06cc\u062e\u062a\u0646\u200c\u0627\u0634\u062a\u0627\u06cc\u0646 +territories.LK=\u0633\u0631\u06cc\u200c\u0644\u0627\u0646\u06a9\u0627 +territories.LR=\u0644\u06cc\u0628\u0631\u06cc\u0627 +territories.LS=\u0644\u0633\u0648\u062a\u0648 +territories.LT=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc +territories.LU=\u0644\u0648\u06a9\u0632\u0627\u0645\u0628\u0648\u0631\u06af +territories.LV=\u0644\u062a\u0648\u0646\u06cc +territories.LY=\u0644\u06cc\u0628\u06cc +territories.MA=\u0645\u0631\u0627\u06a9\u0634 +territories.MC=\u0645\u0648\u0646\u0627\u06a9\u0648 +territories.MD=\u0645\u0648\u0644\u062f\u0648\u0648\u0627 +territories.ME=\u0645\u0648\u0646\u062a\u0647\u200c\u0646\u06af\u0631\u0648 +territories.MF=\u0633\u0646\u062a \u0645\u0627\u0631\u062a\u06cc\u0646 +territories.MG=\u0645\u0627\u062f\u0627\u06af\u0627\u0633\u06a9\u0627\u0631 +territories.MH=\u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u0634\u0627\u0644 +territories.MK=\u0645\u0642\u062f\u0648\u0646\u06cc\u0647 +territories.ML=\u0645\u0627\u0644\u06cc +territories.MM=\u0645\u06cc\u0627\u0646\u0645\u0627\u0631 +territories.MN=\u0645\u063a\u0648\u0644\u0633\u062a\u0627\u0646 +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.MP=\u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u06cc\u0627\u0646\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc +territories.MQ=\u0645\u0627\u0631\u062a\u06cc\u0646\u06cc\u06a9 +territories.MR=\u0645\u0648\u0631\u06cc\u062a\u0627\u0646\u06cc +territories.MS=\u0645\u0648\u0646\u062a\u200c\u0633\u0631\u0627\u062a +territories.MT=\u0645\u0627\u0644\u062a +territories.MU=\u0645\u0648\u0631\u06cc\u062a\u06cc\u0648\u0633 +territories.MV=\u0645\u0627\u0644\u062f\u06cc\u0648 +territories.MW=\u0645\u0627\u0644\u0627\u0648\u06cc +territories.MX=\u0645\u06a9\u0632\u06cc\u06a9 +territories.MY=\u0645\u0627\u0644\u0632\u06cc +territories.MZ=\u0645\u0648\u0632\u0627\u0645\u0628\u06cc\u06a9 +territories.NA=\u0646\u0627\u0645\u06cc\u0628\u06cc\u0627 +territories.NC=\u06a9\u0627\u0644\u062f\u0648\u0646\u06cc\u0627\u06cc \u062c\u062f\u06cc\u062f +territories.NE=\u0646\u06cc\u062c\u0631 +territories.NF=\u062c\u0632\u06cc\u0631\u0647\u0654 \u0646\u0648\u0631\u0641\u0648\u0644\u06a9 +territories.NG=\u0646\u06cc\u062c\u0631\u06cc\u0647 +territories.NI=\u0646\u06cc\u06a9\u0627\u0631\u0627\u06af\u0648\u0626\u0647 +territories.NL=\u0647\u0644\u0646\u062f +territories.NO=\u0646\u0631\u0648\u0698 +territories.NP=\u0646\u067e\u0627\u0644 +territories.NR=\u0646\u0627\u0626\u0648\u0631\u0648 +territories.NU=\u0646\u06cc\u0648\u0626\u0647 +territories.NZ=\u0632\u0644\u0627\u0646\u062f \u0646\u0648 +territories.OM=\u0639\u0645\u0627\u0646 +territories.PA=\u067e\u0627\u0646\u0627\u0645\u0627 +territories.PE=\u067e\u0631\u0648 +territories.PF=\u067e\u0644\u06cc\u200c\u0646\u0632\u06cc \u0641\u0631\u0627\u0646\u0633\u0647 +territories.PG=\u067e\u0627\u067e\u0648\u0627 \u06af\u06cc\u0646\u0647\u0654 \u0646\u0648 +territories.PH=\u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646 +territories.PK=\u067e\u0627\u06a9\u0633\u062a\u0627\u0646 +territories.PL=\u0644\u0647\u0633\u062a\u0627\u0646 +territories.PM=\u0633\u0646\u062a \u067e\u06cc\u0631 \u0648 \u0645\u06cc\u06a9\u0644\u0648\u0646 +territories.PN=\u067e\u06cc\u062a\u06a9\u0627\u06cc\u0631\u0646 +territories.PR=\u067e\u0648\u0631\u062a\u0648 \u0631\u06cc\u06a9\u0648 +territories.PS=\u0641\u0644\u0633\u0637\u06cc\u0646 +territories.PT=\u067e\u0631\u062a\u063a\u0627\u0644 +territories.PW=\u067e\u0627\u0644\u0627\u0626\u0648 +territories.PY=\u067e\u0627\u0631\u0627\u06af\u0648\u0626\u0647 +territories.QA=\u0642\u0637\u0631 +territories.QO=\u0627\u0642\u06cc\u0627\u0646\u0648\u0633\u06cc\u0647\u0654 \u062f\u0648\u0631\u062f\u0633\u062a +territories.QU=\u0627\u062a\u062d\u0627\u062f\u06cc\u0647\u0654 \u0627\u0631\u0648\u067e\u0627 +territories.RE=\u0631\u06cc\u0648\u0646\u06cc\u0648\u0646 +territories.RO=\u0631\u0648\u0645\u0627\u0646\u06cc +territories.RS=\u0635\u0631\u0628\u0633\u062a\u0627\u0646 +territories.RU=\u0631\u0648\u0633\u06cc\u0647 +territories.RW=\u0631\u0648\u0627\u0646\u062f\u0627 +territories.SA=\u0639\u0631\u0628\u0633\u062a\u0627\u0646 \u0633\u0639\u0648\u062f\u06cc +territories.SB=\u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646 +territories.SC=\u0633\u06cc\u0634\u0644 +territories.SD=\u0633\u0648\u062f\u0627\u0646 +territories.SE=\u0633\u0648\u0626\u062f +territories.SG=\u0633\u0646\u06af\u0627\u067e\u0648\u0631 +territories.SH=\u0633\u0646\u062a \u0647\u0644\u0646 +territories.SI=\u0627\u0633\u0644\u0648\u0648\u0646\u06cc +territories.SJ=\u0627\u0633\u0648\u0627\u0644\u0628\u0627\u0631\u062f \u0648 \u062c\u0627\u0646 \u0645\u0627\u06cc\u0646 +territories.SK=\u0627\u0633\u0644\u0648\u0627\u06a9\u06cc +territories.SL=\u0633\u06cc\u0631\u0627\u0644\u0626\u0648\u0646 +territories.SM=\u0633\u0627\u0646 \u0645\u0627\u0631\u06cc\u0646\u0648 +territories.SN=\u0633\u0646\u06af\u0627\u0644 +territories.SO=\u0633\u0648\u0645\u0627\u0644\u06cc +territories.SR=\u0633\u0648\u0631\u06cc\u0646\u0627\u0645 +territories.ST=\u0633\u0627\u0626\u0648 \u062a\u0648\u0645\u0647 \u0648 \u067e\u0631\u06cc\u0646\u0633\u06cc\u067e\u0647 +territories.SV=\u0627\u0644\u0633\u0627\u0644\u0648\u0627\u062f\u0648\u0631 +territories.SY=\u0633\u0648\u0631\u06cc\u0647 +territories.SZ=\u0633\u0648\u0627\u0632\u06cc\u0644\u0646\u062f +territories.TC=\u062c\u0632\u0627\u06cc\u0631 \u062a\u0631\u06a9 \u0648 \u06a9\u0627\u06cc\u06a9\u0648\u0633 +territories.TD=\u0686\u0627\u062f +territories.TF=\u0645\u0633\u062a\u0639\u0645\u0631\u0647\u200c\u0647\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc \u0641\u0631\u0627\u0646\u0633\u0647 +territories.TG=\u062a\u0648\u06af\u0648 +territories.TH=\u062a\u0627\u06cc\u0644\u0646\u062f +territories.TJ=\u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646 +territories.TK=\u062a\u0648\u06a9\u0644\u0627\u0626\u0648 +territories.TL=\u062a\u06cc\u0645\u0648\u0631 \u0634\u0631\u0642\u06cc 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 \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.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 +territories.TN=\u062a\u0648\u0646\u0633 +territories.TO=\u062a\u0648\u0646\u06af\u0627 +territories.TR=\u062a\u0631\u06a9\u06cc\u0647 +territories.TT=\u062a\u0631\u06cc\u0646\u06cc\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u06af\u0648 +territories.TV=\u062a\u0648\u0648\u0627\u0644\u0648 +territories.TW=\u062a\u0627\u06cc\u0648\u0627\u0646 +territories.TZ=\u062a\u0627\u0646\u0632\u0627\u0646\u06cc\u0627 +territories.UA=\u0627\u0648\u06a9\u0631\u0627\u06cc\u0646 +territories.UG=\u0627\u0648\u06af\u0627\u0646\u062f\u0627 +territories.UM=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u0686\u06a9 \u062f\u0648\u0631\u0627\u0641\u062a\u0627\u062f\u0647\u0654 \u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647 +territories.US=\u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0627\u0645\u0631\u06cc\u06a9\u0627 +territories.UY=\u0627\u0648\u0631\u0648\u06af\u0648\u0626\u0647 +territories.UZ=\u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646 +territories.VA=\u0648\u0627\u062a\u06cc\u06a9\u0627\u0646 +territories.VC=\u0633\u0646\u062a \u0648\u06cc\u0646\u0633\u0646\u062a \u0648 \u06af\u0631\u0646\u0627\u062f\u06cc\u0646 +territories.VE=\u0648\u0646\u0632\u0648\u0626\u0644\u0627 +territories.VG=\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627 +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.VN=\u0648\u06cc\u062a\u0646\u0627\u0645 +territories.VU=\u0648\u0627\u0646\u0648\u0627\u062a\u0648 +territories.WF=\u0648\u0627\u0644\u06cc\u0633 \u0648 \u0641\u06cc\u0648\u062a\u0648\u0646\u0627 +territories.WS=\u0633\u0627\u0645\u0648\u0627 +territories.YE=\u06cc\u0645\u0646 +territories.YT=\u0645\u0627\u06cc\u0648\u062a +territories.ZA=\u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc +territories.ZM=\u0632\u0627\u0645\u0628\u06cc\u0627 +territories.ZW=\u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u0647 +territories.ZZ=\u0646\u0627\u062d\u06cc\u0647\u0654 \u0646\u0627\u0645\u0634\u062e\u0635 \u06cc\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631 +languages.aa=\u0622\u0641\u0627\u0631\u06cc +languages.ab=\u0622\u0628\u062e\u0627\u0632\u06cc +languages.ace=\u0622\u0686\u0626\u06cc +languages.ach=\u0622\u0686\u0648\u0644\u06cc\u0627\u06cc\u06cc +languages.ada=\u0622\u062f\u0627\u0646\u06af\u0645\u0647\u200c\u0627\u06cc +languages.ady=\u0622\u062f\u06cc\u062c\u06cc\u0627\u06cc\u06cc +languages.ae=\u0627\u0648\u0633\u062a\u0627\u06cc\u06cc +languages.af=\u0622\u0641\u0631\u06cc\u06a9\u0627\u0646\u0633 +languages.afa=\u0632\u0628\u0627\u0646 \u0627\u0641\u0631\u06cc\u0642\u0627 \u0648 \u0622\u0633\u06cc\u0627\u06cc\u06cc +languages.afh=\u0622\u0641\u0631\u06cc\u0647\u06cc\u0644\u06cc 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 \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=\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.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=\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.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.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 -languages.tt=\u062a\u0627\u062a\u0627\u0631\u06cc -languages.ts=\u062a\u0633\u0648\u0646\u06af\u0627\u06cc\u06cc +languages.ak=\u0622\u06a9\u0627\u0646 +languages.akk=\u0622\u06a9\u062f\u06cc +languages.ale=\u0622\u0644\u0626\u0648\u062a\u06cc +languages.alg=\u0632\u0628\u0627\u0646 \u0622\u0644\u06af\u0648\u0646\u06a9\u06cc\u0646\u06cc +languages.alt=alt +languages.am=\u0627\u0645\u0647\u0631\u06cc +languages.an=an +languages.ang=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0627\u0633\u062a\u0627\u0646 +languages.anp=\u0622\u0646\u06af\u06cc\u06a9\u0627 +languages.apa=\u0632\u0628\u0627\u0646 \u0622\u067e\u0627\u0686\u06cc\u0627\u06cc\u06cc +languages.ar=\u0639\u0631\u0628\u06cc +languages.arc=\u0622\u0631\u0627\u0645\u06cc +languages.arn=\u0622\u0631\u0648\u06a9\u0627\u0646\u06cc\u0627\u06cc\u06cc +languages.arp=\u0622\u0631\u0627\u067e\u0627\u0647\u0648\u06cc\u06cc +languages.art=\u0632\u0628\u0627\u0646 \u0633\u0627\u062e\u062a\u06af\u06cc +languages.arw=\u0622\u0631\u0627\u0648\u0627\u06a9\u06cc +languages.as=\u0622\u0633\u0627\u0645\u06cc +languages.ast=ast +languages.ath=\u0632\u0628\u0627\u0646 \u0622\u062a\u0627\u067e\u0627\u0633\u06a9\u0627\u06cc\u06cc +languages.aus=\u0632\u0628\u0627\u0646 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u06cc\u06cc +languages.av=\u0622\u0648\u0627\u0631\u06cc +languages.awa=awa +languages.ay=\u0622\u06cc\u0645\u0627\u0631\u0627\u06cc\u06cc +languages.az=\u062a\u0631\u06a9\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u06cc +languages.ba=\u0628\u0627\u0634\u063a\u06cc\u0631\u06cc languages.bad=\u0628\u0627\u0646\u062f\u0627\u06cc\u06cc -languages.tr=\u062a\u0631\u06a9\u06cc \u0627\u0633\u062a\u0627\u0646\u0628\u0648\u0644\u06cc -languages.to=\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc (\u062c\u0632\u0627\u06cc\u0631 \u062a\u0648\u0646\u06af\u0627) -languages.tn=\u062a\u0633\u0648\u0627\u0646\u0627\u06cc\u06cc -languages.tl=\u062a\u0627\u06af\u0627\u0644\u0648\u06af\u06cc -languages.tk=\u062a\u0631\u06a9\u0645\u0646\u06cc -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.bai=bai +languages.bal=\u0628\u0644\u0648\u0686\u06cc +languages.ban=\u0628\u0627\u0644\u06cc\u0627\u06cc\u06cc +languages.bas=\u0628\u0627\u0633\u0627\u06cc\u06cc +languages.bat=\u0632\u0628\u0627\u0646 \u0628\u0627\u0644\u062a\u06cc\u06a9\u06cc +languages.be=\u0628\u0644\u0648\u0631\u0648\u0633\u06cc +languages.bej=\u0628\u062c\u0627\u06cc\u06cc +languages.bem=\u0628\u0645\u0628\u0627\u06cc\u06cc +languages.ber=\u0628\u0631\u0628\u0631\u06cc +languages.bg=\u0628\u0644\u063a\u0627\u0631\u06cc +languages.bh=\u0628\u06cc\u0647\u0627\u0631\u06cc +languages.bho=\u0628\u0648\u062c\u067e\u0648\u0631\u06cc +languages.bi=\u0628\u06cc\u0633\u0644\u0627\u0645\u0627 +languages.bik=\u0628\u06cc\u06a9\u0648\u0644\u06cc +languages.bin=\u0628\u06cc\u0646\u06cc +languages.bla=bla +languages.bm=\u0628\u0627\u0645\u0628\u0627\u0631\u0627\u06cc\u06cc +languages.bn=\u0628\u0646\u06af\u0627\u0644\u06cc +languages.bnt=\u0628\u0627\u0646\u062a\u0648\u06cc\u06cc +languages.bo=\u062a\u0628\u062a\u06cc +languages.br=\u0628\u0631\u062a\u0627\u0646\u06cc\u0627\u06cc\u06cc +languages.bra=\u0628\u0631\u0627\u062c +languages.bs=\u0628\u0648\u0633\u0646\u06cc\u0627\u06cc\u06cc +languages.btk=\u0628\u0627\u062a\u0627\u06a9\u06cc +languages.bua=\u0628\u0648\u0631\u06cc\u0627\u062a\u06cc +languages.bug=\u0628\u0648\u06af\u06cc\u0627\u06cc\u06cc languages.byn=\u0628\u0644\u06cc\u0646 -languages.te=\u062a\u0644\u0648\u06af\u0648\u06cc\u06cc -languages.kro=\u06a9\u0631\u0648\u06cc\u06cc +languages.ca=\u06a9\u0627\u062a\u0627\u0644\u0648\u0646\u06cc\u0627\u06cc\u06cc +languages.cad=\u06a9\u0627\u062f\u0648\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.car=\u06a9\u0627\u0631\u06cc\u0628\u06cc +languages.cau=\u0632\u0628\u0627\u0646 \u0642\u0641\u0642\u0627\u0632\u06cc +languages.cch=cch +languages.ce=\u0686\u0686\u0646\u06cc +languages.ceb=\u0633\u0628\u0648\u06cc\u06cc +languages.cel=\u0632\u0628\u0627\u0646 \u0633\u0644\u062a\u06cc +languages.ch=\u0686\u0627\u0645\u0648\u0631\u0648\u06cc\u06cc +languages.chb=\u0686\u06cc\u0628\u0686\u0627 +languages.chg=\u0686\u0627\u06af\u0627\u062a\u0627\u06cc\u06cc +languages.chk=\u0686\u0648\u06a9\u0632\u06cc +languages.chm=\u0645\u0627\u0631\u06cc\u0627\u06cc\u06cc +languages.chn=chn +languages.cho=\u0686\u0648\u06a9\u062a\u0648\u06cc\u06cc +languages.chp=\u0686\u06cc\u067e\u0647\u200c\u0648\u06cc\u0647\u200c\u0627\u06cc +languages.chr=\u0686\u0631\u0648\u06a9\u06cc\u0627\u06cc\u06cc +languages.chy=\u0634\u0627\u06cc\u0627\u0646\u06cc +languages.cmc=cmc +languages.co=\u06a9\u0648\u0631\u0633\u06cc +languages.cop=\u0642\u0628\u0637\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.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.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.cr=\u06a9\u0631\u06cc\u0627\u06cc\u06cc +languages.crh=\u062a\u0631\u06a9\u06cc \u06a9\u0631\u06cc\u0645\u0647 +languages.crp=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646 +languages.cs=\u0686\u06a9\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.cu=\u0627\u0633\u0644\u0627\u0648\u06cc \u06a9\u0644\u06cc\u0633\u0627\u06cc\u06cc +languages.cus=\u0632\u0628\u0627\u0646 \u06a9\u0648\u0634\u06cc +languages.cv=\u0686\u0648\u0648\u0627\u0634\u06cc +languages.cy=\u0648\u06cc\u0644\u0632\u06cc +languages.da=\u062f\u0627\u0646\u0645\u0627\u0631\u06a9\u06cc +languages.dak=\u062f\u0627\u06a9\u0648\u062a\u0627\u06cc\u06cc +languages.dar=\u062f\u0627\u0631\u06af\u0648\u0627 +languages.day=\u062f\u0627\u06cc\u0627\u06a9 +languages.de=\u0622\u0644\u0645\u0627\u0646\u06cc +languages.de_AT=\u0622\u0644\u0645\u0627\u0646\u06cc \u0627\u062a\u0631\u06cc\u0634 +languages.de_CH=\u0622\u0644\u0645\u0627\u0646\u06cc \u0639\u0644\u06cc\u0627\u06cc \u0633\u0648\u0626\u06cc\u0633 +languages.del=\u062f\u0644\u0627\u0648\u0627\u0631\u06cc +languages.den=den +languages.dgr=\u062f\u0648\u06af\u0631\u06cc\u0628 +languages.din=\u062f\u06cc\u0646\u06a9\u0627\u06cc\u06cc +languages.doi=\u062f\u0648\u06af\u0631\u06cc +languages.dra=\u0632\u0628\u0627\u0646 \u062f\u0631\u0627\u0648\u06cc\u062f\u06cc +languages.dsb=\u0635\u064f\u0631\u0628\u06cc \u0633\u0641\u0644\u06cc +languages.dua=\u062f\u0648\u0622\u0644\u0627\u06cc\u06cc +languages.dum=\u0647\u0644\u0646\u062f\u06cc \u0645\u06cc\u0627\u0646\u0647 +languages.dv=dv +languages.dyu=\u062f\u0627\u06cc\u0648\u0644\u0627\u06cc\u06cc +languages.dz=\u062c\u0648\u0646\u062e\u0627\u06cc\u06cc +languages.ee=\u0627\u0648\u0647\u200c\u0627\u06cc languages.efi=\u0627\u0641\u06cc\u06a9\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 \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 -languages.grc=\u06cc\u0648\u0646\u0627\u0646\u06cc \u06a9\u0647\u0646 -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.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 -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.egy=\u0645\u0635\u0631\u06cc \u06a9\u0647\u0646 +languages.eka=\u0627\u06a9\u0627\u062c\u0648\u06a9 +languages.el=\u06cc\u0648\u0646\u0627\u0646\u06cc +languages.elx=\u0639\u06cc\u0644\u0627\u0645\u06cc +languages.en=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc +languages.en_AU=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627 +languages.en_CA=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u06a9\u0627\u0646\u0627\u062f\u0627 +languages.en_GB=\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627 +languages.en_US=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627 +languages.enm=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u06cc\u0627\u0646\u0647 +languages.eo=\u0627\u0633\u067e\u0631\u0627\u0646\u062a\u0648 +languages.es=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc +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.es_ES=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc \u0627\u0633\u067e\u0627\u0646\u06cc\u0627 +languages.et=\u0627\u0633\u062a\u0648\u0646\u06cc\u0627\u06cc\u06cc +languages.eu=\u0628\u0627\u0633\u06a9\u06cc +languages.ewo=\u0627\u0648\u0627\u0646\u062f\u0648 +languages.fa=\u0641\u0627\u0631\u0633\u06cc +languages.fan=\u0641\u0627\u0646\u06a9\u06cc +languages.fat=\u0641\u0627\u0646\u062a\u06cc\u0627\u06cc\u06cc +languages.ff=\u0641\u0648\u0644\u0627\u06cc\u06cc +languages.fi=\u0641\u0646\u0644\u0627\u0646\u062f\u06cc +languages.fil=\u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u06cc +languages.fiu=\u0632\u0628\u0627\u0646 \u0641\u06cc\u0646 \u0648 \u0627\u0648\u06af\u0631\u0627\u06cc\u06cc +languages.fj=\u0641\u06cc\u062c\u06cc\u0627\u06cc\u06cc +languages.fo=\u0641\u0627\u0631\u0648\u06cc\u06cc +languages.fon=\u0641\u0648\u0646\u06cc +languages.fr=\u0641\u0631\u0627\u0646\u0633\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 \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.kos=\u06a9\u0648\u0633\u0631\u0627 \u0626\u0646 -languages.hit=\u0647\u06cc\u062a\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 -languages.pt=\u067e\u0631\u062a\u063a\u0627\u0644\u06cc -languages.ps=\u067e\u0634\u062a\u0648 +languages.fr_CH=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u0633\u0648\u0626\u06cc\u0633 +languages.frm=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u0645\u06cc\u0627\u0646\u0647 +languages.fro=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u0628\u0627\u0633\u062a\u0627\u0646 +languages.frr=\u0641\u0631\u06cc\u0632\u06cc \u0634\u0645\u0627\u0644\u06cc +languages.frs=\u0641\u0631\u06cc\u0632\u06cc \u0634\u0631\u0642\u06cc 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.fy=\u0641\u0631\u06cc\u0632\u06cc \u063a\u0631\u0628\u06cc +languages.ga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc +languages.gaa=\u06af\u0627\u06cc\u06cc +languages.gay=\u06af\u0627\u06cc\u0648 +languages.gba=\u06af\u0628\u0627\u06cc\u0627\u06cc\u06cc +languages.gd=\u06af\u06cc\u0644\u06cc \u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f\u06cc +languages.gem=\u0632\u0628\u0627\u0646 \u0698\u0631\u0645\u0646\u06cc +languages.gez=\u06af\u06cc\u200c\u0626\u0632\u06cc +languages.gil=\u06af\u06cc\u0644\u0628\u0631\u062a\u06cc +languages.gl=\u06af\u0627\u0644\u06cc\u0633\u06cc\u0627\u06cc\u06cc +languages.gmh=\u0622\u0644\u0645\u0627\u0646\u06cc \u0639\u0644\u06cc\u0627\u06cc \u0645\u06cc\u0627\u0646\u0647 +languages.gn=\u06af\u0648\u0627\u0631\u0627\u0646\u06cc 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=\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.gon=\u06af\u0648\u0646\u062f\u06cc +languages.gor=\u06af\u0648\u0631\u0648\u0646\u062a\u0627\u0644\u0648 +languages.got=\u06af\u0627\u062a\u06cc\u06a9 +languages.grb=\u06af\u0631\u06cc\u0628\u0648\u06cc\u06cc +languages.grc=\u06cc\u0648\u0646\u0627\u0646\u06cc \u06a9\u0647\u0646 +languages.gsw=\u0622\u0644\u0645\u0627\u0646\u06cc \u0633\u0648\u0626\u06cc\u0633\u06cc +languages.gu=\u06af\u062c\u0631\u0627\u062a\u06cc +languages.gv=\u0645\u0627\u0646\u06cc +languages.gwi=\u06af\u0648\u06cc\u0686 \u0627\u06cc\u0646 +languages.ha=\u0647\u0648\u0633\u06cc\u0627\u06cc\u06cc +languages.hai=\u0647\u0627\u06cc\u062f\u0627\u06cc\u06cc +languages.haw=\u0647\u0627\u0648\u0627\u0626\u06cc\u0627\u06cc\u06cc +languages.he=\u0639\u0628\u0631\u06cc +languages.hi=\u0647\u0646\u062f\u06cc +languages.hil=\u0647\u06cc\u0644\u06cc\u200c\u06af\u0627\u06cc\u0646\u0648\u0646\u06cc +languages.him=\u0647\u06cc\u0645\u0627\u0686\u0627\u0644\u06cc +languages.hit=\u0647\u06cc\u062a\u06cc +languages.hmn=\u0647\u0645\u0648\u0646\u06af +languages.ho=\u0647\u06cc\u0631\u06cc \u0645\u0648\u062a\u0648 +languages.hr=\u06a9\u0631\u0648\u0627\u062a\u06cc +languages.hsb=\u0635\u064f\u0631\u0628\u06cc \u0639\u0644\u06cc\u0627 +languages.ht=\u0647\u0627\u0626\u06cc\u062a\u06cc\u0627\u06cc\u06cc +languages.hu=\u0645\u062c\u0627\u0631\u06cc +languages.hup=\u0647\u0648\u067e\u0627 +languages.hy=\u0627\u0631\u0645\u0646\u06cc +languages.hz=\u0647\u0631\u06cc\u0631\u0648\u06cc\u06cc +languages.ia=\u0645\u06cc\u0627\u0646\u200c\u0632\u0628\u0627\u0646 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 -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.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.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.id=\u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u0627\u06cc\u06cc +languages.ie=\u0628\u06cc\u0646 \u0632\u0628\u0627\u0646\u06cc +languages.ig=\u0627\u06cc\u06af\u0628\u0648\u06cc\u06cc +languages.ii=\u06cc\u06cc \u0633\u06cc\u0686\u0648\u0627\u0646 +languages.ijo=\u0627\u06cc\u062c\u0648\u06cc\u06cc +languages.ik=\u0627\u06cc\u0646\u0648\u067e\u06cc\u06a9 +languages.ilo=\u0627\u06cc\u0644\u0648\u06a9\u0648\u06cc\u06cc +languages.inc=\u0632\u0628\u0627\u0646 \u0647\u0646\u062f\u06cc\u06a9 +languages.ine=\u0632\u0628\u0627\u0646 \u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u06cc +languages.inh=\u0627\u06cc\u0646\u06af\u0648\u0634\u06cc +languages.io=\u0627\u06cc\u062f\u0648 +languages.ira=\u0632\u0628\u0627\u0646 \u0627\u06cc\u0631\u0627\u0646\u06cc +languages.iro=\u0632\u0628\u0627\u0646 \u0627\u06cc\u0631\u0648\u06a9\u0648\u0627\u06cc\u06cc +languages.is=\u0627\u06cc\u0633\u0644\u0646\u062f\u06cc +languages.it=\u0627\u06cc\u062a\u0627\u0644\u06cc\u0627\u06cc\u06cc +languages.iu=\u0627\u06cc\u0646\u0648\u06a9\u062a\u06cc\u062a\u0648\u062a +languages.ja=\u0698\u0627\u067e\u0646\u06cc +languages.jbo=\u0644\u0648\u062c\u0628\u0627\u0646 +languages.jpr=\u0641\u0627\u0631\u0633\u06cc \u06cc\u0647\u0648\u062f\u06cc +languages.jrb=\u0639\u0631\u0628\u06cc \u06cc\u0647\u0648\u062f\u06cc +languages.jv=\u062c\u0627\u0648\u0647\u200c\u0627\u06cc +languages.ka=\u06af\u0631\u062c\u06cc +languages.kaa=\u0642\u0631\u0647\u200c\u0642\u0627\u0644\u067e\u0627\u0642\u06cc +languages.kab=\u0642\u0628\u0627\u06cc\u0644\u06cc +languages.kac=\u06a9\u0627\u0686\u06cc\u0646\u06cc +languages.kaj=\u062c\u0648 +languages.kam=\u06a9\u0627\u0645\u0628\u0627\u06cc\u06cc +languages.kar=\u06a9\u0627\u0631\u0646\u06cc +languages.kaw=\u06a9\u0627\u0648\u06cc +languages.kbd=\u06a9\u0627\u0628\u0627\u0631\u062f\u06cc\u0646\u06cc +languages.kcg=kcg +languages.kfo=\u06a9\u0648\u0631\u0648 +languages.kg=\u06a9\u0646\u06af\u0648\u06cc\u06cc +languages.kha=\u062e\u0627\u0632\u06cc\u0627\u06cc\u06cc +languages.khi=\u0632\u0628\u0627\u0646 \u062e\u0648\u0627\u0633\u06cc +languages.kho=\u062e\u062a\u0646\u06cc +languages.ki=\u06a9\u06cc\u06a9\u0648\u06cc\u0648\u06cc\u06cc +languages.kj=\u06a9\u0648\u0627\u0646\u06cc\u0627\u0645\u0627 +languages.kk=\u0642\u0632\u0627\u0642\u06cc +languages.kl=\u06af\u0631\u06cc\u0646\u0644\u0646\u062f\u06cc +languages.km=\u062e\u0645\u0631\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\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=\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.kn=\u06a9\u0627\u0646\u0627\u062f\u0647\u200c\u0627\u06cc +languages.ko=\u06a9\u0631\u0647\u200c\u0627\u06cc +languages.kok=\u06a9\u0646\u06a9\u0627\u0646\u06cc +languages.kos=kos +languages.kpe=\u06a9\u067e\u0644\u0647\u200c\u0627\u06cc +languages.kr=\u06a9\u0627\u0646\u0648\u0631\u06cc\u0627\u06cc\u06cc +languages.krc=\u0642\u0631\u0647\u200c\u0686\u0627\u06cc\u06cc\u2010\u0628\u0627\u0644\u06a9\u0627\u0631\u06cc +languages.krl=krl +languages.kro=\u06a9\u0631\u0648\u06cc\u06cc +languages.kru=\u06a9\u0648\u0631\u0648\u062e\u06cc +languages.ks=\u06a9\u0634\u0645\u06cc\u0631\u06cc +languages.ku=\u06a9\u0631\u062f\u06cc +languages.kum=\u06a9\u0648\u0645\u06cc\u06a9\u06cc +languages.kut=\u06a9\u0648\u062a\u0646\u06cc +languages.kv=\u06a9\u0648\u0645\u06cc\u0627\u06cc\u06cc +languages.kw=\u06a9\u0631\u0646\u0648\u0627\u0644\u06cc +languages.ky=\u0642\u0631\u0642\u06cc\u0632\u06cc +languages.la=\u0644\u0627\u062a\u06cc\u0646\u06cc +languages.lad=\u0644\u0627\u062f\u06cc\u0646\u0648 +languages.lah=\u0644\u0627\u0647\u0646\u062f\u0627 +languages.lam=\u0644\u0627\u0645\u0628\u0627 +languages.lb=\u0644\u0648\u06af\u0632\u0627\u0645\u0628\u0648\u0631\u06af\u06cc languages.lez=\u0644\u0632\u06af\u06cc -languages.mt=\u0645\u0627\u0644\u062a\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 -languages.mn=\u0645\u063a\u0648\u0644\u06cc -languages.frm=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u0645\u06cc\u0627\u0646\u0647 -languages.ml=\u0645\u0627\u0644\u0627\u06cc\u0627\u0644\u0627\u0645\u06cc -languages.jrb=\u0639\u0631\u0628\u06cc \u06cc\u0647\u0648\u062f\u06cc -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.lg=\u06af\u0627\u0646\u062f\u0627\u06cc\u06cc +languages.li=\u0644\u06cc\u0645\u0628\u0648\u0631\u06af\u06cc +languages.ln=\u0644\u06cc\u0646\u06af\u0627\u0644\u0627 +languages.lo=\u0644\u0627\u0626\u0648\u0633\u06cc +languages.lol=\u0645\u0648\u0646\u06af\u0648\u06cc\u06cc +languages.loz=\u0644\u0648\u0632\u06cc\u0627\u06cc\u06cc +languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc\u0627\u06cc\u06cc +languages.lu=\u0644\u0648\u0628\u0627\u06cc\u06cc\u2010\u06a9\u0627\u062a\u0627\u0646\u06af\u0627 +languages.lua=\u0644\u0648\u0628\u0627\u06cc\u06cc\u2010\u0644\u0648\u0644\u0648\u0627 +languages.lui=\u0644\u0648\u06cc\u0633\u0646\u0648 +languages.lun=\u0644\u0648\u0646\u062f\u0627\u06cc\u06cc +languages.luo=\u0644\u0648\u0626\u0648\u06cc\u06cc +languages.lus=\u0644\u0648\u0634\u0647\u200c\u0627\u06cc +languages.lv=\u0644\u062a\u0648\u0646\u06cc\u0627\u06cc\u06cc +languages.mad=\u0645\u0627\u062f\u0648\u0631\u0627\u06cc\u06cc +languages.mag=\u0645\u0627\u06af\u0627\u0647\u06cc\u0627\u06cc\u06cc +languages.mai=\u0645\u0627\u06cc\u062f\u06cc\u0644\u06cc +languages.mak=\u0645\u0627\u06a9\u0627\u0633\u0627\u0631 +languages.man=\u0645\u0627\u0646\u062f\u06cc\u0646\u06af\u0648\u06cc\u06cc +languages.map=\u0622\u0633\u062a\u0631\u0648\u0646\u06cc\u0632\u06cc\u0627\u06cc\u06cc +languages.mas=\u0645\u0627\u0633\u0627\u06cc\u06cc +languages.mdf=\u0645\u06a9\u0634\u0627\u06cc\u06cc +languages.mdr=\u0645\u0627\u0646\u062f\u0627\u0631 +languages.men=\u0645\u0646\u062f\u0647\u200c\u0627\u06cc languages.mg=\u0645\u0627\u0644\u0627\u06af\u0627\u0633\u06cc\u0627\u06cc\u06cc -languages.nqo=\u0627\u0646 \u06a9\u0648 +languages.mga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc \u0645\u06cc\u0627\u0646\u0647 +languages.mh=\u0645\u0627\u0631\u0634\u0627\u0644\u06cc +languages.mi=\u0645\u0627\u0626\u0648\u0631\u06cc\u0627\u06cc\u06cc +languages.mic=\u0645\u06cc\u06a9\u0645\u0627\u06a9\u06cc +languages.min=\u0645\u06cc\u0646\u0627\u0646\u06af\u200c\u06a9\u0627\u0628\u0648\u06cc\u06cc +languages.mis=\u0632\u0628\u0627\u0646 \u0645\u062a\u0641\u0631\u0642\u0647 +languages.mk=\u0645\u0642\u062f\u0648\u0646\u06cc +languages.mkh=\u0632\u0628\u0627\u0646 \u0645\u0648\u0646\u200c\u062e\u0645\u0631\u06cc +languages.ml=\u0645\u0627\u0644\u0627\u06cc\u0627\u0644\u0627\u0645\u06cc +languages.mn=\u0645\u063a\u0648\u0644\u06cc +languages.mnc=\u0645\u0627\u0646\u0686\u0648\u06cc\u06cc +languages.mni=\u0645\u0627\u0646\u06cc\u067e\u0648\u0631\u06cc +languages.mno=\u0632\u0628\u0627\u0646 \u0645\u0627\u0646\u0648\u0628\u0648 +languages.mo=\u0645\u0648\u0644\u062f\u0627\u0648\u06cc\u0627\u06cc\u06cc +languages.moh=\u0645\u0648\u0647\u0627\u06a9\u06cc +languages.mos=\u0645\u0627\u0633\u06cc\u0627\u06cc\u06cc +languages.mr=\u0645\u0631\u0627\u062a\u06cc +languages.ms=\u0645\u0627\u0644\u0632\u06cc\u0627\u06cc\u06cc +languages.mt=\u0645\u0627\u0644\u062a\u06cc +languages.mul=\u0686\u0646\u062f\u06cc\u0646 \u0632\u0628\u0627\u0646 +languages.mun=\u0632\u0628\u0627\u0646 \u0645\u0648\u0646\u062f\u0627\u06cc\u06cc +languages.mus=\u06a9\u0631\u06cc\u06a9\u06cc +languages.mwl=mwl 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.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 -languages.jpr=\u0641\u0627\u0631\u0633\u06cc \u06cc\u0647\u0648\u062f\u06cc -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 \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.my=\u0628\u0631\u0645\u0647\u200c\u0627\u06cc +languages.myn=\u0632\u0628\u0627\u0646 \u0645\u0627\u06cc\u0627\u06cc\u06cc +languages.myv=\u0627\u0631\u0632\u06cc\u0627\u06cc\u06cc +languages.na=\u0646\u0627\u0626\u0648\u0631\u0648\u06cc\u06cc +languages.nah=\u0646\u0627\u0648\u0627\u062a\u0644\u06cc +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.nap=\u0646\u0627\u067e\u0644\u06cc +languages.nb=\u0628\u0648\u06a9\u0633\u0645\u0627\u0644 \u0646\u0631\u0648\u0698\u06cc +languages.nd=\u0627\u0646\u062f\u0647\u200c\u0628\u0644\u0647\u200c\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc +languages.nds=\u0622\u0644\u0645\u0627\u0646\u06cc \u0633\u0641\u0644\u06cc +languages.ne=\u0646\u067e\u0627\u0644\u06cc +languages.new=\u0646\u0648\u0627\u0631\u06cc\u0627\u06cc\u06cc +languages.ng=\u0646\u062f\u0648\u0646\u06af\u0627\u06cc\u06cc +languages.nia=\u0646\u06cc\u0627\u0633 +languages.nic=nic +languages.niu=\u0646\u06cc\u0648\u06cc\u06cc +languages.nl=\u0647\u0644\u0646\u062f\u06cc +languages.nl_BE=\u0647\u0644\u0646\u062f\u06cc \u0628\u0644\u0698\u06cc\u06a9 +languages.nn=\u0646\u0631\u0633 \u062c\u062f\u06cc\u062f \u0646\u0631\u0648\u0698\u06cc +languages.no=\u0646\u0631\u0648\u0698\u06cc +languages.nog=\u0646\u063a\u0627\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.nqo=nqo +languages.nr=\u0627\u0646\u062f\u0647\u200c\u0628\u0644\u0647\u200c\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc +languages.nso=\u0633\u0648\u062a\u0648\u06cc\u06cc \u0634\u0645\u0627\u0644\u06cc +languages.nub=\u0632\u0628\u0627\u0646 \u0646\u0648\u0628\u06cc\u0627\u06cc\u06cc +languages.nv=\u0646\u0627\u0648\u0627\u0647\u0648\u06cc\u06cc +languages.nwc=\u0646\u0648\u0627\u0631\u06cc\u0627\u06cc\u06cc \u06a9\u0644\u0627\u0633\u06cc\u06a9 +languages.ny=\u0646\u06cc\u0627\u0646\u062c\u0627\u06cc\u06cc +languages.nym=nym +languages.nyn=\u0646\u06cc\u0627\u0646\u06a9\u0648\u0644\u0647\u200c\u0627\u06cc +languages.nyo=\u0646\u06cc\u0648\u0631\u0648\u06cc\u06cc +languages.nzi=\u0646\u0632\u06cc\u0645\u0627\u06cc\u06cc +languages.oc=\u0627\u0648\u06a9\u06cc\u062a\u0627\u06cc\u06cc +languages.oj=\u0627\u0648\u062c\u06cc\u0628\u0648\u0627\u06cc\u06cc +languages.om=\u0627\u0648\u0631\u0648\u0645\u0648\u06cc\u06cc +languages.or=\u0627\u0648\u0631\u06cc\u0647\u200c\u0627\u06cc +languages.os=\u0622\u0633\u06cc +languages.osa=\u0627\u0648\u0633\u06cc\u062c\u06cc +languages.ota=\u062a\u0631\u06a9\u06cc \u0639\u062b\u0645\u0627\u0646\u06cc +languages.oto=\u0632\u0628\u0627\u0646 \u0627\u062a\u0648\u0645\u06cc\u0627\u06cc\u06cc +languages.pa=\u067e\u0646\u062c\u0627\u0628\u06cc +languages.paa=\u0632\u0628\u0627\u0646 \u067e\u0627\u067e\u0648\u0627\u06cc\u06cc +languages.pag=\u067e\u0627\u0646\u06af\u0627\u0633\u06cc\u0646\u0627\u0646\u06cc +languages.pal=\u067e\u0647\u0644\u0648\u06cc +languages.pam=\u067e\u0627\u0645\u067e\u0627\u0646\u06af\u0627\u06cc\u06cc +languages.pap=\u067e\u0627\u067e\u06cc\u0627\u0645\u0646\u062a\u0648 +languages.pau=\u067e\u0627\u0644\u0627\u0626\u0648\u06cc\u06cc +languages.peo=\u0641\u0627\u0631\u0633\u06cc \u0628\u0627\u0633\u062a\u0627\u0646 +languages.phi=\u0632\u0628\u0627\u0646 \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u06cc +languages.phn=\u0641\u0646\u06cc\u0642\u06cc +languages.pi=\u067e\u0627\u0644\u06cc +languages.pl=\u0644\u0647\u0633\u062a\u0627\u0646\u06cc +languages.pon=pon +languages.pra=\u0632\u0628\u0627\u0646 \u067e\u0631\u0627\u06a9\u0631\u06cc\u062a\u06cc +languages.pro=pro +languages.ps=\u067e\u0634\u062a\u0648 +languages.pt=\u067e\u0631\u062a\u063a\u0627\u0644\u06cc +languages.pt_BR=\u067e\u0631\u062a\u063a\u0627\u0644\u06cc \u0628\u0631\u0632\u06cc\u0644 +languages.pt_PT=\u067e\u0631\u062a\u063a\u0627\u0644\u06cc \u067e\u0631\u062a\u063a\u0627\u0644 +languages.qu=\u06a9\u0686\u0648\u0627\u06cc\u06cc +languages.raj=\u0631\u0627\u062c\u0633\u062a\u0627\u0646\u06cc +languages.rap=\u0631\u0627\u067e\u0627\u0646\u0648\u06cc\u06cc +languages.rar=\u0631\u0627\u0631\u0648\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc +languages.rm=\u0631\u062a\u0648\u2010\u0631\u0648\u0645\u06cc\u0627\u06cc\u06cc +languages.rn=\u0631\u0648\u0646\u062f\u06cc\u0627\u06cc\u06cc +languages.ro=\u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u06cc\u06cc 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 \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 -languages.znd=\u0632\u0627\u0646\u062f\u0647\u200c\u0627\u06cc +languages.rom=\u0631\u0648\u0645\u0627\u0646\u0648\u06cc\u06cc +languages.root=\u0631\u06cc\u0634\u0647 +languages.ru=\u0631\u0648\u0633\u06cc +languages.rup=rup +languages.rw=\u06a9\u06cc\u0646\u06cc\u0627\u0631\u0648\u0627\u0646\u062f\u0627\u06cc\u06cc +languages.sa=\u0633\u0646\u0633\u06a9\u0631\u06cc\u062a +languages.sad=\u0633\u0627\u0646\u062f\u0627\u0648\u0647\u200c\u0627\u06cc +languages.sah=\u06cc\u0627\u0642\u0648\u062a\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.sal=\u0632\u0628\u0627\u0646 \u0633\u0627\u0644\u06cc\u0634\u06cc +languages.sam=sam +languages.sas=\u0633\u0627\u0633\u0627\u06a9 +languages.sat=\u0633\u0627\u0646\u062a\u0627\u0644\u06cc +languages.sc=\u0633\u0627\u0631\u062f\u06cc\u0646\u06cc\u0627\u06cc\u06cc +languages.scn=\u0633\u06cc\u0633\u06cc\u0644\u06cc +languages.sco=\u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f\u06cc +languages.sd=\u0633\u0646\u062f\u06cc +languages.se=\u0633\u0627\u0645\u06cc \u0634\u0645\u0627\u0644\u06cc +languages.sel=\u0633\u0644\u06a9\u0648\u067e\u06cc +languages.sem=\u0632\u0628\u0627\u0646 \u0633\u0627\u0645\u06cc +languages.sg=\u0633\u0627\u0646\u06af\u0648\u06cc\u06cc +languages.sga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc \u0628\u0627\u0633\u062a\u0627\u0646 +languages.sgn=\u0632\u0628\u0627\u0646 \u0646\u0634\u0627\u0646\u0647\u200c\u0627\u06cc +languages.sh=\u0635\u0631\u0628 \u0648 \u06a9\u0631\u0648\u0627\u062a\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 \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=\u0632\u0628\u0627\u0646 \u062e\u0648\u0627\u0633\u06cc -languages.pau=\u067e\u0627\u0644\u0627\u0626\u0648\u06cc\u06cc -languages.chy=\u0634\u0627\u06cc\u0627\u0646\u06cc +languages.si=\u0633\u06cc\u0646\u0647\u0627\u0644\u06cc +languages.sid=\u0633\u06cc\u062f\u0627\u0645\u0648\u06cc\u06cc +languages.sio=\u0632\u0628\u0627\u0646 \u0633\u0648\u06cc\u06cc +languages.sit=\u0632\u0628\u0627\u0646 \u0686\u06cc\u0646 \u0648 \u062a\u0628\u062a\u06cc +languages.sk=\u0627\u0633\u0644\u0648\u0627\u06a9\u06cc +languages.sl=\u0627\u0633\u0644\u0648\u0648\u06cc\u0646\u06cc\u0627\u06cc\u06cc +languages.sla=\u0632\u0628\u0627\u0646 \u0627\u0633\u0644\u0627\u0648\u06cc +languages.sm=\u0633\u0627\u0645\u0648\u0622\u06cc\u06cc +languages.sma=\u0633\u0627\u0645\u06cc \u062c\u0646\u0648\u0628\u06cc +languages.smi=smi +languages.smj=\u0633\u0627\u0645\u06cc \u0644\u0648\u0644 +languages.smn=\u0633\u0627\u0645\u06cc \u0627\u06cc\u0646\u0627\u0631\u06cc +languages.sms=\u0633\u0627\u0645\u06cc \u0627\u0633\u06a9\u0627\u0644\u062a +languages.sn=\u0634\u0648\u0646\u0627\u06cc\u06cc +languages.snk=\u0633\u0648\u0646\u06cc\u0646\u06a9\u0647\u200c\u0627\u06cc +languages.so=\u0633\u0648\u0645\u0627\u0644\u06cc\u0627\u06cc\u06cc +languages.sog=\u0633\u063a\u062f\u06cc +languages.son=\u0633\u0648\u0646\u063a\u0627\u06cc\u06cc +languages.sq=\u0622\u0644\u0628\u0627\u0646\u06cc\u0627\u06cc\u06cc +languages.sr=\u0635\u0631\u0628\u06cc +languages.srr=\u0633\u0631\u06cc\u0631\u06cc +languages.ss=ss +languages.ssa=\u0632\u0628\u0627\u0646 \u0646\u06cc\u0644\u06cc \u0648 \u0635\u062d\u0631\u0627\u06cc\u06cc +languages.st=\u0633\u0648\u062a\u0648\u06cc\u06cc \u062c\u0646\u0648\u0628\u06cc +languages.su=\u0633\u0648\u0646\u062f\u0627\u06cc\u06cc +languages.suk=\u0633\u0648\u06a9\u0648\u0645\u0627\u06cc\u06cc +languages.sus=\u0633\u0648\u0633\u0648\u06cc\u06cc +languages.sux=\u0633\u0648\u0645\u0631\u06cc +languages.sv=\u0633\u0648\u0626\u062f\u06cc +languages.sw=\u0633\u0648\u0627\u062d\u0644\u06cc +languages.syc=\u0633\u0631\u06cc\u0627\u0646\u06cc \u06a9\u0644\u0627\u0633\u06cc\u06a9 +languages.syr=\u0633\u0631\u06cc\u0627\u0646\u06cc +languages.ta=\u062a\u0627\u0645\u06cc\u0644\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 \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.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.te=\u062a\u0644\u0648\u06af\u0648\u06cc\u06cc +languages.tem=\u062a\u06cc\u0645\u0646\u0647\u200c\u0627\u06cc +languages.ter=\u062a\u0631\u0646\u0648 +languages.tet=\u062a\u062a\u0648\u0645\u06cc +languages.tg=\u062a\u0627\u062c\u06cc\u06a9\u06cc +languages.th=\u062a\u0627\u06cc\u0644\u0646\u062f\u06cc +languages.ti=\u062a\u06cc\u06af\u0631\u06cc\u0646\u06cc\u0627\u06cc\u06cc +languages.tig=\u062a\u06cc\u06af\u0631\u0647\u200c\u0627\u06cc +languages.tiv=\u062a\u06cc\u0648\u06cc +languages.tk=\u062a\u0631\u06a9\u0645\u0646\u06cc +languages.tkl=\u062a\u0648\u06a9\u0644\u0648\u06cc +languages.tl=\u062a\u0627\u06af\u0627\u0644\u0648\u06af\u06cc +languages.tlh=\u06a9\u0644\u06cc\u0646\u06af\u0648\u0646 +languages.tli=\u062a\u0644\u06cc\u0646\u200c\u06af\u06cc\u062a\u06cc +languages.tmh=\u062a\u0627\u0645\u0627\u0634\u0642\u06cc +languages.tn=\u062a\u0633\u0648\u0627\u0646\u0627\u06cc\u06cc +languages.to=\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc +languages.tog=\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc \u0646\u06cc\u0627\u0633\u0627 +languages.tpi=tpi +languages.tr=\u062a\u0631\u06a9\u06cc \u0627\u0633\u062a\u0627\u0646\u0628\u0648\u0644\u06cc +languages.ts=\u062a\u0633\u0648\u0646\u06af\u0627\u06cc\u06cc +languages.tsi=\u062a\u0633\u06cc\u0645\u200c\u0634\u06cc\u0627\u0646\u06cc +languages.tt=\u062a\u0627\u062a\u0627\u0631\u06cc +languages.tum=\u062a\u0648\u0645\u0628\u0648\u06a9\u0627\u06cc\u06cc +languages.tup=\u0632\u0628\u0627\u0646 \u062a\u0648\u067e\u06cc\u0627\u06cc\u06cc +languages.tut=\u0632\u0628\u0627\u0646 \u0622\u0644\u062a\u0627\u06cc\u06cc\u06a9 +languages.tvl=\u062a\u0648\u0648\u0627\u0644\u0648\u06cc\u06cc +languages.tw=\u062a\u0648\u06cc\u200c\u06cc\u0627\u06cc\u06cc +languages.ty=\u062a\u0627\u0647\u06cc\u062a\u06cc\u0627\u06cc\u06cc languages.tyv=\u062a\u0648\u0648\u0627\u06cc\u06cc -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.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=\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.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 \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.udm=\u0627\u0648\u062f\u0645\u0648\u0631\u062a\u06cc +languages.ug=\u0627\u0648\u06cc\u063a\u0648\u0631\u06cc +languages.uga=\u0627\u0648\u06af\u0627\u0631\u06cc\u062a\u06cc +languages.uk=\u0627\u0648\u06a9\u0631\u0627\u06cc\u0646\u06cc +languages.umb=\u0627\u0645\u0628\u0646\u062f\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.ur=\u0627\u0631\u062f\u0648 +languages.uz=\u0627\u0632\u0628\u06a9\u06cc +languages.vai=\u0648\u06cc\u0627\u06cc\u06cc +languages.ve=\u0648\u0646\u062f\u0627\u06cc\u06cc +languages.vi=\u0648\u06cc\u062a\u0646\u0627\u0645\u06cc +languages.vo=\u0648\u0644\u0627\u067e\u0648\u06a9 +languages.vot=\u0648\u062a\u06cc\u06a9 +languages.wa=\u0648\u0627\u0644\u0648\u0646\u06cc +languages.wak=\u0632\u0628\u0627\u0646 \u0648\u0627\u06a9\u0627\u0634\u06cc +languages.wal=\u0648\u0627\u0644\u0627\u0645\u0648 +languages.war=\u0648\u0627\u0631\u0627\u06cc\u06cc +languages.was=\u0648\u0627\u0634\u0648\u06cc\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=\u0632\u0628\u0627\u0646 \u0633\u0627\u0645\u06cc -languages.sel=\u0633\u0644\u06a9\u0648\u067e\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.gez=\u06af\u06cc\u200c\u0626\u0632\u06cc -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 \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.wo=\u0648\u0644\u0648\u0641\u06cc +languages.xal=\u0642\u0644\u0645\u0648\u0642\u06cc +languages.xh=\u062e\u0648\u0633\u0627\u06cc\u06cc +languages.yao=\u06cc\u0627\u0626\u0648\u06cc\u06cc +languages.yap=\u06cc\u0627\u067e\u06cc +languages.yi=\u06cc\u062f\u06cc +languages.yo=\u06cc\u0648\u0631\u0648\u0628\u0627\u06cc\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=\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.za=\u0686\u0648\u0627\u0646\u06af\u06cc +languages.zap=\u0632\u0627\u067e\u0648\u062a\u06a9\u06cc +languages.zbl=zbl +languages.zen=\u0632\u0646\u0627\u06af\u0627 +languages.zh=\u0686\u06cc\u0646\u06cc 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=\u0632\u0628\u0627\u0646 \u0622\u0644\u062a\u0627\u06cc\u06cc\u06a9 -languages.niu=\u0646\u06cc\u0648\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.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 \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.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.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.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.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 \u0633\u0627\u0644\u06cc\u0634\u06cc -languages.dua=\u062f\u0648\u0622\u0644\u0627\u06cc\u06cc -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.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.enm=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u06cc\u0627\u0646\u0647 -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.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.kaa=\u0642\u0631\u0647\u200c\u0642\u0627\u0644\u067e\u0627\u0642\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.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.znd=\u0632\u0627\u0646\u062f\u0647\u200c\u0627\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.dsb=\u0635\u064f\u0631\u0628\u06cc \u0633\u0641\u0644\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.new=\u0646\u0648\u0627\u0631\u06cc\u0627\u06cc\u06cc -languages.ak=\u0622\u06a9\u0627\u0646 -languages.za=\u0686\u0648\u0627\u0646\u06af\u06cc -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=\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 +languages.zun=\u0632\u0648\u0646\u06cc\u0627\u06cc\u06cc +languages.zxx=zxx +languages.zza=\u0632\u0627\u0632\u0627\u06cc\u06cc variants.1901=\u0631\u0633\u0645\u200c\u0627\u0644\u062e\u0637 \u0633\u0646\u062a\u06cc \u0622\u0644\u0645\u0627\u0646\u06cc 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.POSIX=\u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u06cc variants.REVISED=\u0631\u0633\u0645\u200c\u0627\u0644\u062e\u0637 \u062a\u062c\u062f\u06cc\u062f\u0646\u0638\u0631\u0634\u062f\u0647 +variants.SCOTLAND=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u0639\u06cc\u0627\u0631 \u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f 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 d6b375d8a03..75064abf79c 100644 --- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa_AF.properties +++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa_AF.properties @@ -11,135 +11,135 @@ zeroDigit=\u06f0 decimalSeparator=\u066b groupingSeparator=\u066c percentFormat='\u202a'#,##0%'\u202c' -currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0627\u0631\u0648\u06cc +currenciesDisplayName.AUD=\u062f\u0627\u0644\u0631 \u0622\u0633\u062a\u0631\u0627\u0644\u06cc\u0627 currenciesDisplayName.BND=\u062f\u0627\u0644\u0631 \u0628\u0631\u0648\u0646\u06cc -currenciesDisplayName.JPY=\u06cc\u0646 \u062c\u0627\u067e\u0627\u0646 -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.BYR=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647\u0654 \u0633\u0641\u06cc\u062f +currenciesDisplayName.CAD=\u062f\u0627\u0644\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627 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 +currenciesDisplayName.DKK=\u06a9\u0631\u0648\u0646 \u062f\u0646\u0645\u0627\u0631\u06a9 +currenciesDisplayName.JPY=\u06cc\u0646 \u062c\u0627\u067e\u0627\u0646 currenciesDisplayName.MXN=\u067e\u0632\u0648\u06cc \u0645\u06a9\u0633\u06cc\u06a9\u0648 +currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0627\u0644\u0646\u062f +currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0627\u0631\u0648\u06cc currenciesDisplayName.SEK=\u06a9\u0631\u0648\u0646 \u0633\u0648\u06cc\u062f\u0646 -currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647\u0654 \u0633\u0641\u06cc\u062f +currenciesDisplayName.SGD=\u062f\u0627\u0644\u0631 \u0633\u06cc\u0646\u06af\u0627\u067e\u0648\u0631 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 +currenciesDisplayName.USD=\u062f\u0627\u0644\u0631 \u0627\u0645\u0631\u06cc\u06a9\u0627 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.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.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.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 -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.MN=\u0645\u0646\u06af\u0648\u0644\u06cc\u0627 +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 +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 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 -territories.SL=\u0633\u06cc\u0631\u0627\u0644\u06cc\u0648\u0646 -territories.MG=\u0645\u0627\u062f\u063a\u0627\u0633\u06a9\u0631 -territories.SK=\u0633\u0644\u0648\u0627\u06a9\u06cc\u0627 -territories.SI=\u0633\u0644\u0648\u0646\u06cc\u0627 -territories.SG=\u0633\u06cc\u0646\u06af\u0627\u067e\u0648\u0631 -territories.SE=\u0633\u0648\u06cc\u062f\u0646 -territories.SB=\u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u0648\u0645\u0648\u0646 -territories.LY=\u0644\u06cc\u0628\u06cc\u0627 -territories.LV=\u0644\u0627\u062a\u0648\u06cc\u0627 -territories.LT=\u0644\u062a\u0648\u0627\u0646\u06cc\u0627 -territories.LS=\u0644\u06cc\u0633\u0648\u062a\u0648 -territories.RW=\u0631\u0648\u0622\u0646\u062f\u0627 -territories.FM=\u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc\u0627 -territories.FI=\u0641\u0646\u0644\u0646\u062f -territories.LK=\u0633\u0631\u06cc\u0644\u0627\u0646\u06a9\u0627 -territories.RO=\u0631\u0648\u0645\u0627\u0646\u06cc\u0627 -territories.ET=\u0627\u06cc\u062a\u0648\u067e\u06cc\u0627 -territories.ES=\u0647\u0633\u067e\u0627\u0646\u06cc\u0647 -territories.ER=\u0627\u0631\u06cc\u062a\u0631\u06cc\u0627 -territories.KR=\u06a9\u0648\u0631\u06cc\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc -territories.KP=\u06a9\u0648\u0631\u06cc\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc -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 -territories.KH=\u06a9\u0645\u067e\u0648\u0686\u06cc\u0627 +territories.AE=\u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc +territories.AG=\u0627\u0646\u062a\u06cc\u06af\u0648\u0627 \u0648 \u0628\u0627\u0631\u0628\u0648\u062f\u0627 +territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0627 +territories.AO=\u0627\u0646\u06af\u0648\u0644\u0627 +territories.AR=\u0627\u0631\u062c\u0646\u062a\u0627\u06cc\u0646 +territories.AU=\u0622\u0633\u062a\u0631\u0627\u0644\u06cc\u0627 +territories.BA=\u0628\u0648\u0633\u0646\u06cc\u0627 \u0648 \u0647\u0631\u0632\u0647\u200c\u06af\u0648\u06cc\u0646\u0627 +territories.BD=\u0628\u0646\u06af\u0644\u0647\u200c\u062f\u06cc\u0634 +territories.BE=\u0628\u0644\u062c\u06cc\u0645 +territories.BG=\u0628\u0644\u063a\u0627\u0631\u06cc\u0627 +territories.BN=\u0628\u0631\u0648\u0646\u06cc +territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0627 +territories.BR=\u0628\u0631\u0627\u0632\u06cc\u0644 +territories.BS=\u0628\u0647\u0627\u0645\u0627\u0633 +territories.BY=\u0631\u0648\u0633\u06cc\u0647\u0654 \u0633\u0641\u06cc\u062f +territories.CD=\u062c\u0645\u0647\u0648\u0631\u06cc \u062f\u0645\u0648\u06a9\u0631\u0627\u062a\u06cc\u06a9 \u06a9\u0627\u0646\u06af\u0648 +territories.CF=\u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc +territories.CG=\u06a9\u0627\u0646\u06af\u0648 +territories.CH=\u0633\u0648\u06cc\u0633 +territories.CL=\u0686\u0644\u06cc +territories.CO=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0627 +territories.CR=\u06a9\u0627\u0633\u062a\u0631\u06cc\u06a9\u0627 +territories.CU=\u06a9\u06cc\u0648\u0628\u0627 +territories.DK=\u062f\u0646\u0645\u0627\u0631\u06a9 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.EE=\u0627\u0633\u062a\u0648\u0646\u06cc\u0627 +territories.ER=\u0627\u0631\u06cc\u062a\u0631\u06cc\u0627 +territories.ES=\u0647\u0633\u067e\u0627\u0646\u06cc\u0647 +territories.ET=\u0627\u06cc\u062a\u0648\u067e\u06cc\u0627 +territories.FI=\u0641\u0646\u0644\u0646\u062f +territories.FM=\u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc\u0627 +territories.GD=\u06af\u0631\u06cc\u0646\u0627\u062f\u0627 +territories.GN=\u06af\u06cc\u0646\u06cc\u0627 +territories.GQ=\u06af\u06cc\u0646\u06cc\u0627 \u0627\u0633\u062a\u0648\u0627\u06cc\u06cc +territories.GT=\u06af\u0648\u0627\u062a\u06cc\u0645\u0627\u0644\u0627 +territories.GW=\u06af\u06cc\u0646\u06cc\u0627 \u0628\u06cc\u0633\u0627\u0626\u0648 +territories.GY=\u06af\u06cc\u0627\u0646\u0627 +territories.HN=\u0647\u0627\u0646\u062f\u0648\u0631\u0627\u0633 +territories.HR=\u06a9\u0631\u0648\u0634\u06cc\u0627 +territories.HT=\u0647\u0627\u06cc\u062a\u06cc +territories.ID=\u0627\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc\u0627 +territories.IE=\u0622\u06cc\u0631\u0644\u0646\u062f +territories.IS=\u0622\u06cc\u0633\u0644\u0646\u062f 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 -territories.PE=\u067e\u06cc\u0631\u0648 +territories.KE=\u06a9\u06cc\u0646\u06cc\u0627 +territories.KG=\u0642\u0631\u063a\u0632\u0633\u062a\u0627\u0646 +territories.KH=\u06a9\u0645\u067e\u0648\u0686\u06cc\u0627 +territories.KM=\u06a9\u0648\u0645\u0648\u0631 +territories.KN=\u0633\u0646\u062a \u06a9\u06cc\u062a\u0633 \u0648 \u0646\u06cc\u0648\u06cc\u0633 +territories.KP=\u06a9\u0648\u0631\u06cc\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc +territories.KR=\u06a9\u0648\u0631\u06cc\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc +territories.LK=\u0633\u0631\u06cc\u0644\u0627\u0646\u06a9\u0627 +territories.LS=\u0644\u06cc\u0633\u0648\u062a\u0648 +territories.LT=\u0644\u062a\u0648\u0627\u0646\u06cc\u0627 +territories.LV=\u0644\u0627\u062a\u0648\u06cc\u0627 +territories.LY=\u0644\u06cc\u0628\u06cc\u0627 +territories.MG=\u0645\u0627\u062f\u063a\u0627\u0633\u06a9\u0631 +territories.MN=\u0645\u0646\u06af\u0648\u0644\u06cc\u0627 +territories.MR=\u0645\u0648\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627 +territories.MT=\u0645\u0627\u0644\u062a\u0627 +territories.MX=\u0645\u06a9\u0633\u06cc\u06a9\u0648 +territories.MY=\u0645\u0627\u0644\u06cc\u0632\u06cc\u0627 +territories.MZ=\u0645\u0648\u0632\u0645\u0628\u06cc\u0642 +territories.NG=\u0646\u06cc\u062c\u0631\u06cc\u0627 +territories.NI=\u0646\u06cc\u06a9\u0627\u0631\u0627\u06af\u0648\u0627 +territories.NL=\u0647\u0627\u0644\u0646\u062f +territories.NO=\u0646\u0627\u0631\u0648\u06cc +territories.NP=\u0646\u06cc\u067e\u0627\u0644 +territories.NZ=\u0632\u06cc\u0644\u0627\u0646\u062f \u062c\u062f\u06cc\u062f territories.PA=\u067e\u0627\u0646\u0627\u0645\u0647 -territories.VE=\u0648\u0646\u0632\u0648\u06cc\u0644\u0627 -territories.CU=\u06a9\u06cc\u0648\u0628\u0627 -territories.VC=\u0633\u0646\u062a \u0648\u06cc\u0646\u0633\u0646\u062a \u0648 \u06af\u0631\u06cc\u0646\u0627\u062f\u06cc\u0646 -territories.CR=\u06a9\u0627\u0633\u062a\u0631\u06cc\u06a9\u0627 -territories.CO=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0627 -territories.IS=\u0622\u06cc\u0633\u0644\u0646\u062f -territories.CL=\u0686\u0644\u06cc -territories.UY=\u06cc\u0648\u0631\u0648\u06af\u0648\u0627\u06cc -territories.CH=\u0633\u0648\u06cc\u0633 -territories.CG=\u06a9\u0627\u0646\u06af\u0648 -territories.CF=\u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc -territories.US=\u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0627\u0645\u0631\u06cc\u06a9\u0627 -territories.CD=\u062c\u0645\u0647\u0648\u0631\u06cc \u062f\u0645\u0648\u06a9\u0631\u0627\u062a\u06cc\u06a9 \u06a9\u0627\u0646\u06af\u0648 -territories.IE=\u0622\u06cc\u0631\u0644\u0646\u062f -territories.ID=\u0627\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc\u0627 -territories.BY=\u0631\u0648\u0633\u06cc\u0647\u0654 \u0633\u0641\u06cc\u062f -territories.BS=\u0628\u0647\u0627\u0645\u0627\u0633 -territories.BR=\u0628\u0631\u0627\u0632\u06cc\u0644 +territories.PE=\u067e\u06cc\u0631\u0648 +territories.PG=\u067e\u0627\u067e\u0648\u0627 \u0646\u06cc\u0648 \u06af\u06cc\u0646\u06cc\u0627 +territories.PL=\u067e\u0648\u0644\u0646\u062f +territories.PT=\u067e\u0631\u062a\u06af\u0627\u0644 +territories.PY=\u067e\u0627\u0631\u0627\u06af\u0648\u0627\u06cc +territories.RO=\u0631\u0648\u0645\u0627\u0646\u06cc\u0627 +territories.RW=\u0631\u0648\u0622\u0646\u062f\u0627 +territories.SB=\u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u0648\u0645\u0648\u0646 +territories.SE=\u0633\u0648\u06cc\u062f\u0646 +territories.SG=\u0633\u06cc\u0646\u06af\u0627\u067e\u0648\u0631 +territories.SI=\u0633\u0644\u0648\u0646\u06cc\u0627 +territories.SK=\u0633\u0644\u0648\u0627\u06a9\u06cc\u0627 +territories.SL=\u0633\u06cc\u0631\u0627\u0644\u06cc\u0648\u0646 +territories.SN=\u0633\u06cc\u0646\u06cc\u06af\u0627\u0644 +territories.SO=\u0633\u0648\u0645\u0627\u0644\u06cc\u0647 +territories.ST=\u0633\u0627\u0626\u0648 \u062a\u0648\u0645\u0647 \u0648 \u067e\u0631\u06cc\u0646\u0633\u06cc\u067e +territories.SV=\u0627\u0644\u0633\u0644\u0648\u0627\u062f\u0648\u0631 +territories.TJ=\u062a\u0627\u062c\u06a9\u0633\u062a\u0627\u0646 territories.UA=\u0627\u06a9\u0631\u0627\u06cc\u0646 -territories.NZ=\u0632\u06cc\u0644\u0627\u0646\u062f \u062c\u062f\u06cc\u062f -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.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.US=\u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0627\u0645\u0631\u06cc\u06a9\u0627 +territories.UY=\u06cc\u0648\u0631\u0648\u06af\u0648\u0627\u06cc +territories.VC=\u0633\u0646\u062a \u0648\u06cc\u0646\u0633\u0646\u062a \u0648 \u06af\u0631\u06cc\u0646\u0627\u062f\u06cc\u0646 +territories.VE=\u0648\u0646\u0632\u0648\u06cc\u0644\u0627 +territories.WS=\u0633\u0627\u0645\u0648\u0622 territories.ZW=\u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u06cc -territories.NL=\u0647\u0627\u0644\u0646\u062f -territories.BA=\u0628\u0648\u0633\u0646\u06cc\u0627 \u0648 \u0647\u0631\u0632\u0647\u200c\u06af\u0648\u06cc\u0646\u0627 -territories.NI=\u0646\u06cc\u06a9\u0627\u0631\u0627\u06af\u0648\u0627 -territories.NG=\u0646\u06cc\u062c\u0631\u06cc\u0627 -territories.TJ=\u062a\u0627\u062c\u06a9\u0633\u062a\u0627\u0646 -languages.ja=\u062c\u0627\u067e\u0627\u0646\u06cc -languages.ko=\u06a9\u0648\u0631\u06cc\u0627\u06cc\u06cc -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.ne=\u0646\u06cc\u067e\u0627\u0644\u06cc -languages.is=\u0622\u06cc\u0633\u0644\u0646\u062f\u06cc +languages.es=\u0647\u0633\u067e\u0627\u0646\u0648\u06cc +languages.fa=\u062f\u0631\u06cc languages.fi=\u0641\u0646\u0644\u0646\u062f\u06cc +languages.ga=\u0622\u06cc\u0631\u0644\u0646\u062f\u06cc +languages.hr=\u06a9\u0631\u0648\u0634\u06cc\u0627\u06cc\u06cc languages.id=\u0627\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc\u0627\u06cc\u06cc -languages.sv=\u0633\u0648\u06cc\u062f\u0646\u06cc -languages.fa=\u062f\u0631\u06cc -languages.pt=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc +languages.is=\u0622\u06cc\u0633\u0644\u0646\u062f\u06cc +languages.it=\u0627\u06cc\u062a\u0627\u0644\u0648\u06cc +languages.ja=\u062c\u0627\u067e\u0627\u0646\u06cc +languages.ko=\u06a9\u0648\u0631\u06cc\u0627\u06cc\u06cc +languages.ky=\u0642\u0631\u063a\u0632\u06cc languages.mn=\u0645\u063a\u0644\u06cc +languages.ne=\u0646\u06cc\u067e\u0627\u0644\u06cc +languages.nl=\u0647\u0627\u0644\u0646\u062f\u06cc +languages.no=\u0646\u0627\u0631\u0648\u06cc\u0698\u06cc languages.pl=\u067e\u0648\u0644\u0646\u062f\u06cc -languages.ky=\u0642\u0631\u063a\u0632\u06cc -languages.es=\u0647\u0633\u067e\u0627\u0646\u0648\u06cc -languages.hr=\u06a9\u0631\u0648\u0634\u06cc\u0627\u06cc\u06cc -languages.ga=\u0622\u06cc\u0631\u0644\u0646\u062f\u06cc +languages.pt=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc +languages.sv=\u0633\u0648\u06cc\u062f\u0646\u06cc +languages.tg=\u062a\u0627\u062c\u06a9\u06cc diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties index a2223b268f1..1e37abfd559 100644 --- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties +++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties @@ -18,1115 +18,1115 @@ 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.ADP=Andorran pesetaa +currenciesDisplayName.AED=Arabiemiirikuntien dirhamia 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.AFN=Afganistanin afgaania +currenciesDisplayName.ALL=Albanian leki\u00e4 +currenciesDisplayName.AMD=Armenian dramia +currenciesDisplayName.ANG=Alankomaiden Antillien guldenia +currenciesDisplayName.AOA=Angolan kwanzaa +currenciesDisplayName.AOK=Angolan kwanzaa (1977\u20131990) +currenciesDisplayName.AON=Angolan uutta kwanzaa (1990\u20132000) +currenciesDisplayName.AOR=Angolan kwanza reajustadoa (1995\u20131999) 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.ARP=Argentiinan pesoa (1983\u20131985) +currenciesDisplayName.ARS=Argentiinan pesoa +currenciesDisplayName.ATS=It\u00e4vallan \u0161illinki\u00e4 +currenciesDisplayName.AUD=Australian dollaria +currenciesDisplayName.AWG=Aruban guldenia +currenciesDisplayName.AZM=Azerbaid\u017eanin manatia (1993\u20132006) +currenciesDisplayName.AZN=Azerbaid\u017eanin manatia +currenciesDisplayName.BAD=Bosnia-Hertsegovinan dinaaria +currenciesDisplayName.BAM=Bosnia-Hertsegovinan vaihdettavaa markkaa +currenciesDisplayName.BBD=Barbadosin dollaria +currenciesDisplayName.BDT=Bangladeshin takaa +currenciesDisplayName.BEC=Belgian vaihdettavaa frangia +currenciesDisplayName.BEF=Belgian frangia +currenciesDisplayName.BEL=Belgian rahoitusfrangia +currenciesDisplayName.BGL=Bulgarian kovaa levaa +currenciesDisplayName.BGN=Bulgarian uutta levaa +currenciesDisplayName.BHD=Bahrainin dinaaria +currenciesDisplayName.BIF=Burundin frangia +currenciesDisplayName.BMD=Bermudan dollaria +currenciesDisplayName.BND=Brunein dollaria +currenciesDisplayName.BOB=Bolivian bolivianoa +currenciesDisplayName.BOP=Bolivian pesoa +currenciesDisplayName.BOV=Bolivian mvdol'ia +currenciesDisplayName.BRB=Brasilian uutta cruzeiroa (1967\u20131986) +currenciesDisplayName.BRC=Brasilian cruzadoa +currenciesDisplayName.BRE=Brasilian cruzeiroa (1990\u20131993) +currenciesDisplayName.BRL=Brasilian realia +currenciesDisplayName.BRN=Brasilian uutta cruzadoa +currenciesDisplayName.BRR=Brasilian cruzeiroa +currenciesDisplayName.BSD=Bahaman dollaria +currenciesDisplayName.BTN=Bhutanin ngultrumia +currenciesDisplayName.BUK=Burman kyatia 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.BYB=Valko-Ven\u00e4j\u00e4n uutta ruplaa (1994\u20131999) +currenciesDisplayName.BYR=Valko-Ven\u00e4j\u00e4n ruplaa +currenciesDisplayName.BZD=Belizen dollaria +currenciesDisplayName.CAD=Kanadan dollaria currenciesDisplayName.CDF=Kongon frangia -currenciesDisplayName.NIC=Nicaraguan cordobaa +currenciesDisplayName.CHE=Sveitsin WIR-euroa +currenciesDisplayName.CHF=Sveitsin frangia +currenciesDisplayName.CHW=Sveitsin WIR-frangia +currenciesDisplayName.CLF=Chilen unidades de fomentoa +currenciesDisplayName.CLP=Chilen pesoa +currenciesDisplayName.CNY=Kiinan yuania +currenciesDisplayName.COP=Kolumbian pesoa +currenciesDisplayName.COU=Kolumbian unidad de valor realia +currenciesDisplayName.CRC=Costa Rican colonia +currenciesDisplayName.CSD=Serbian vanhaa dinaaria +currenciesDisplayName.CSK=T\u0161ekkoslovakian kovaa korunaa +currenciesDisplayName.CUP=Kuuban pesoa +currenciesDisplayName.CVE=Kap Verden escudoa +currenciesDisplayName.CYP=Kyproksen puntaa +currenciesDisplayName.CZK=T\u0161ekin korunaa +currenciesDisplayName.DDM=It\u00e4-Saksan markkaa +currenciesDisplayName.DEM=Saksan markkaa currenciesDisplayName.DJF=Djiboutin frangia -currenciesDisplayName.UZS=Uzbekistanin somia -currenciesDisplayName.SBD=Salomonsaarten dollaria -currenciesDisplayName.ECV=Ecuadorin UVC'ta -currenciesDisplayName.LUL=Luxemburgin rahoitusfrangia +currenciesDisplayName.DKK=Tanskan kruunua +currenciesDisplayName.DOP=Dominikaanisen tasavallan pesoa +currenciesDisplayName.DZD=Algerian dinaaria 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.ECV=Ecuadorin UVC'ta +currenciesDisplayName.EEK=Viron kruunua +currenciesDisplayName.EGP=Egyptin puntaa +currenciesDisplayName.EQE=P\u00e4iv\u00e4ntasaajan Guinean ekwele\u00e4 (1986\u20131989) +currenciesDisplayName.ERN=Eritrean nakfaa +currenciesDisplayName.ESA=Espanjan pesetaa (A-tili) +currenciesDisplayName.ESB=Espanjan pesetaa (vaihdettava tili) +currenciesDisplayName.ESP=Espanjan pesetaa +currenciesDisplayName.ETB=Etiopian birri\u00e4 +currenciesDisplayName.EUR=euroa 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.FJD=Fid\u017ein dollaria +currenciesDisplayName.FKP=Falklandinsaarten puntaa +currenciesDisplayName.FRF=Ranskan frangia 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.GEK=Georgian kuponkilaria +currenciesDisplayName.GEL=Georgian laria +currenciesDisplayName.GHC=Ghanan cedi\u00e4 (1979\u20132007) +currenciesDisplayName.GHS=Ghanan cedi\u00e4 +currenciesDisplayName.GIP=Gibraltarin puntaa +currenciesDisplayName.GMD=Gambian dalasia currenciesDisplayName.GNF=Guinean frangia -currenciesDisplayName.MAD=Marokon dirhamia +currenciesDisplayName.GNS=Guinean syli\u00e4 +currenciesDisplayName.GQE=P\u00e4iv\u00e4ntasaajan Guinean ekwele\u00e4 (\u20131986) +currenciesDisplayName.GRD=Kreikan drakmaa +currenciesDisplayName.GTQ=Guatemalan quetzalia +currenciesDisplayName.GWE=Portugalin Guinean escudoa +currenciesDisplayName.GWP=Guinea-Bissaun pesoa +currenciesDisplayName.GYD=Guyanan dollaria +currenciesDisplayName.HKD=Hongkongin dollaria +currenciesDisplayName.HNL=Hondurasin lempiraa +currenciesDisplayName.HRD=Kroatian dinaaria +currenciesDisplayName.HRK=Kroatian kunaa 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.HUF=Unkarin forinttia +currenciesDisplayName.IDR=Indonesian rupiaa +currenciesDisplayName.IEP=Irlannin puntaa +currenciesDisplayName.ILP=Israelin puntaa +currenciesDisplayName.ILS=Israelin uutta sekeli\u00e4 +currenciesDisplayName.INR=Intian rupiaa +currenciesDisplayName.IQD=Irakin dinaaria +currenciesDisplayName.IRR=Iranin rialia +currenciesDisplayName.ISK=Islannin kruunua +currenciesDisplayName.ITL=Italian liiraa +currenciesDisplayName.JMD=Jamaikan dollaria +currenciesDisplayName.JOD=Jordanian dinaaria +currenciesDisplayName.JPY=Japanin jeni\u00e4 +currenciesDisplayName.KES=Kenian \u0161illinki\u00e4 +currenciesDisplayName.KGS=Kirgisian somia +currenciesDisplayName.KHR=Kambod\u017ean rieli\u00e4 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.KPW=Pohjois-Korean wonia +currenciesDisplayName.KRW=Etel\u00e4-Korean wonia +currenciesDisplayName.KWD=Kuwaitin dinaaria 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.KZT=Kazakstanin tenge\u00e4 +currenciesDisplayName.LAK=Laosin kipi\u00e4 +currenciesDisplayName.LBP=Libanonin puntaa +currenciesDisplayName.LKR=Sri Lankan rupiaa 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.LSL=Lesothon lotia +currenciesDisplayName.LSM=Lesothon malotia +currenciesDisplayName.LTL=Liettuan liti\u00e4 +currenciesDisplayName.LTT=Liettuan talonasia +currenciesDisplayName.LUC=Luxemburgin vaihdettavaa frangia +currenciesDisplayName.LUF=Luxemburgin frangia +currenciesDisplayName.LUL=Luxemburgin rahoitusfrangia +currenciesDisplayName.LVL=Latvian latia +currenciesDisplayName.LVR=Latvian ruplaa +currenciesDisplayName.LYD=Libyan dinaaria +currenciesDisplayName.MAD=Marokon dirhamia +currenciesDisplayName.MAF=Marokon frangia +currenciesDisplayName.MDL=Moldovan leuta +currenciesDisplayName.MGA=Madagaskarin ariarya +currenciesDisplayName.MGF=Madagaskarin frangia +currenciesDisplayName.MKD=Makedonian dinaaria +currenciesDisplayName.MLF=Malin frangia +currenciesDisplayName.MMK=Myanmarin kyatia +currenciesDisplayName.MNT=Mongolian tugrikia +currenciesDisplayName.MOP=Macaon patacaa +currenciesDisplayName.MRO=Mauritanian ouguiyaa +currenciesDisplayName.MTL=Maltan liiraa +currenciesDisplayName.MTP=Maltan puntaa +currenciesDisplayName.MUR=Mauritiuksen rupiaa +currenciesDisplayName.MVR=Malediivien rufiyaata 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.MXN=Meksikon pesoa +currenciesDisplayName.MXP=Meksikon hopeapesoa (1861\u20131992) +currenciesDisplayName.MXV=Meksikon UDI'ta +currenciesDisplayName.MYR=Malesian ringgiti\u00e4 +currenciesDisplayName.MZE=Mosambikin escudoa +currenciesDisplayName.MZM=Mosambikin meticalia (1980\u20132006) +currenciesDisplayName.MZN=Mosambikin meticalia +currenciesDisplayName.NAD=Namibian dollaria +currenciesDisplayName.NGN=Nigerian nairaa +currenciesDisplayName.NIC=Nicaraguan cordobaa +currenciesDisplayName.NIO=Nicaraguan kultacordobaa +currenciesDisplayName.NLG=Alankomaiden guldenia +currenciesDisplayName.NOK=Norjan kruunua 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 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 ruplaa -currenciesDisplayName.RON=Romanian uutta leuta +currenciesDisplayName.NZD=Uuden-Seelannin dollaria +currenciesDisplayName.OMR=Omanin rialia +currenciesDisplayName.PAB=Panaman balboaa +currenciesDisplayName.PEI=Perun inti\u00e4 +currenciesDisplayName.PEN=Perun uutta solia +currenciesDisplayName.PES=Perun solia +currenciesDisplayName.PGK=Papua-Uuden-Guinean kinaa +currenciesDisplayName.PHP=Filippiinien pesoa +currenciesDisplayName.PKR=Pakistanin rupiaa +currenciesDisplayName.PLN=Puolan zlotya +currenciesDisplayName.PLZ=Puolan zlotya (1950\u20131995) +currenciesDisplayName.PTE=Portugalin escudoa +currenciesDisplayName.PYG=Paraguayn guarania +currenciesDisplayName.QAR=Qatarin rialia +currenciesDisplayName.RHD=Rhodesian dollaria 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.RON=Romanian uutta leuta +currenciesDisplayName.RSD=Serbian dinaaria +currenciesDisplayName.RUB=Ven\u00e4j\u00e4n ruplaa +currenciesDisplayName.RUR=Ven\u00e4j\u00e4n ruplaa (1991\u20131998) +currenciesDisplayName.RWF=Ruandan frangia +currenciesDisplayName.SAR=Saudi-Arabian rialia +currenciesDisplayName.SBD=Salomonsaarten dollaria +currenciesDisplayName.SCR=Seychellien rupiaa +currenciesDisplayName.SDD=Sudanin dinaaria +currenciesDisplayName.SDG=Sudanin puntaa +currenciesDisplayName.SDP=Sudanin puntaa (1957\u20131999) +currenciesDisplayName.SEK=Ruotsin kruunua +currenciesDisplayName.SGD=Singaporen dollaria currenciesDisplayName.SHP=Saint Helenan puntaa -currenciesDisplayName.XAU=kultayksikk\u00f6\u00e4 -currenciesDisplayName.ZAL=Etel\u00e4-Afrikan randi (rahoitus) -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.SIT=Slovenian tolaria +currenciesDisplayName.SKK=Slovakian korunaa +currenciesDisplayName.SLL=Sierra Leonen leonea +currenciesDisplayName.SOS=Somalian \u0161illinki\u00e4 +currenciesDisplayName.SRD=Surinamin dollaria +currenciesDisplayName.SRG=Surinamin guldenia 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.SUR=Neuvostoliiton ruplaa +currenciesDisplayName.SVC=El Salvadorin colonia +currenciesDisplayName.SYP=Syyrian puntaa +currenciesDisplayName.SZL=Swazimaan lilangenia +currenciesDisplayName.THB=Thaimaan bahtia +currenciesDisplayName.TJR=Tad\u017eikistanin ruplaa +currenciesDisplayName.TJS=Tad\u017eikistanin somonia 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.TND=Tunisian dinaaria +currenciesDisplayName.TOP=Tongan pa\u2019angaa +currenciesDisplayName.TPE=Timorin escudoa +currenciesDisplayName.TRL=Turkin vanhaa liiraa +currenciesDisplayName.TRY=Turkin liiraa +currenciesDisplayName.TTD=Trinidadin ja Tobagon dollaria +currenciesDisplayName.TWD=Taiwanin uutta dollaria +currenciesDisplayName.TZS=Tansanian \u0161illinki\u00e4 +currenciesDisplayName.UAH=Ukrainan hryvniaa +currenciesDisplayName.UAK=Ukrainan karbovanetzi\u00e4 +currenciesDisplayName.UGS=Ugandan \u0161illinki\u00e4 (1966\u20131987) +currenciesDisplayName.UGX=Ugandan \u0161illinki\u00e4 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.USN=Yhdysvaltain dollaria (seuraava p\u00e4iv\u00e4) +currenciesDisplayName.USS=Yhdysvaltain dollaria (sama p\u00e4iv\u00e4) +currenciesDisplayName.UYI=Uruguayn pesoa en unidades indexadas +currenciesDisplayName.UYP=Uruguayn pesoa (1975\u20131993) +currenciesDisplayName.UYU=Uruguayn pesoa +currenciesDisplayName.UZS=Uzbekistanin somia +currenciesDisplayName.VEB=Venezuelan bolivaria +currenciesDisplayName.VEF=Venezuelan bolivar fuertea +currenciesDisplayName.VND=Vietnamin dongia +currenciesDisplayName.VUV=Vanuatun vatua +currenciesDisplayName.WST=Samoan talaa +currenciesDisplayName.XAF=CFA-frangia BEAC +currenciesDisplayName.XAG=hopeayksikk\u00f6\u00e4 +currenciesDisplayName.XAU=kultayksikk\u00f6\u00e4 +currenciesDisplayName.XBA=EURCO'a +currenciesDisplayName.XBB=Euroopan rahayksikk\u00f6\u00e4 (EMU) +currenciesDisplayName.XBC=EUA'ta (XBC) +currenciesDisplayName.XBD=EUA'ta (XBD) +currenciesDisplayName.XCD=It\u00e4-Karibian dollaria +currenciesDisplayName.XDR=erityisnosto-oikeutta (SDR) +currenciesDisplayName.XEU=Euroopan valuuttayksikk\u00f6\u00e4 (ECU) +currenciesDisplayName.XFO=Ranskan kultafrangia +currenciesDisplayName.XFU=Ranskan UIC-frangia +currenciesDisplayName.XOF=CFA-frangia BCEAO +currenciesDisplayName.XPD=palladiumyksikk\u00f6\u00e4 +currenciesDisplayName.XPF=CFP-frangia +currenciesDisplayName.XPT=platinayksikk\u00f6\u00e4 +currenciesDisplayName.XRE=RINET-rahastoyksikk\u00f6\u00e4 +currenciesDisplayName.XTS=testaustarkoitukseen varattua valuuttakoodi 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.YDD=Jemenin dinaaria 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.YUD=Jugoslavian kovaa dinaaria +currenciesDisplayName.YUM=Jugoslavian uutta dinaaria +currenciesDisplayName.YUN=Jugoslavian vaihdettavaa dinaaria +currenciesDisplayName.ZAL=Etel\u00e4-Afrikan rahoitusrandia +currenciesDisplayName.ZAR=Etel\u00e4-Afrikan randia +currenciesDisplayName.ZMK=Sambian kwachaa +currenciesDisplayName.ZRN=Zairen uutta zairea +currenciesDisplayName.ZRZ=Zairen zairea 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.BRL=BRL +currenciesSymbol.DKK=Tkr +currenciesSymbol.FIM=mk +currenciesSymbol.GBP=\u00a3 currenciesSymbol.INR=INR -currenciesSymbol.NOK=Nkr currenciesSymbol.ITL=ITL currenciesSymbol.JPY=\u00a5 -currenciesSymbol.DKK=Tkr -currenciesSymbol.FIM=mk -currenciesSymbol.BRL=BRL -currenciesSymbol.USD=$ +currenciesSymbol.NOK=Nkr 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 +currenciesSymbol.USD=$ +shortMonths=tammi\u00aehelmi\u00aemaalis\u00aehuhti\u00aetouko\u00aekes\u00e4\u00aehein\u00e4\u00aeelo\u00aesyys\u00aeloka\u00aemarras\u00aejoulu\u00ae +months=tammikuuta\u00aehelmikuuta\u00aemaaliskuuta\u00aehuhtikuuta\u00aetoukokuuta\u00aekes\u00e4kuuta\u00aehein\u00e4kuuta\u00aeelokuuta\u00aesyyskuuta\u00aelokakuuta\u00aemarraskuuta\u00aejoulukuuta\u00ae +shortWeekdays=\u00aesu\u00aema\u00aeti\u00aeke\u00aeto\u00aepe\u00aela +weekdays=\u00aesunnuntaina\u00aemaanantaina\u00aetiistaina\u00aekeskiviikkona\u00aetorstaina\u00aeperjantaina\u00aelauantaina eras=eKr.\u00aejKr.\u00ae ampms=ap.\u00aeip.\u00ae shortDateFormat=d.M.yyyy mediumDateFormat=d.M.yyyy -longDateFormat=d. MMMM'ta' yyyy -fullDateFormat=EEEE d. MMMM'ta' 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 z -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 -territories.TH=Thaimaa -territories.TG=Togo -territories.TF=Ranskan ulkopuoliset etel\u00e4iset alueet -territories.GY=Guyana -territories.TD=T\u0161ad -territories.TC=Turks- ja Caicossaaret -territories.GW=Guinea-Bissau -territories.GU=Guam -territories.GT=Guatemala -territories.GS=Etel\u00e4-Georgia ja Etel\u00e4iset Sandwichsaaret -territories.GR=Kreikka -territories.GQ=P\u00e4iv\u00e4ntasaajan Guinea -territories.GP=Guadeloupe -territories.SZ=Swazimaa -territories.SY=Syyria -territories.GN=Guinea -territories.GM=Gambia -territories.GL=Gr\u00f6nlanti -territories.SV=El Salvador -territories.062=Etel\u00e4- ja Keski-Aasia -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=Ranskan Guayana -territories.GE=Georgia -territories.SO=Somalia -territories.GD=Grenada -territories.SN=Senegal -territories.SM=San Marino -territories.GB=Britannia -territories.SL=Sierra Leone -territories.GA=Gabon -territories.SK=Slovakia -territories.SJ=Huippuvuoret ja Jan Mayen -territories.SI=Slovenia -territories.SH=Saint Helena -territories.SG=Singapore -territories.SE=Ruotsi -territories.SD=Sudan -territories.SC=Seychellit -territories.SB=Salomonsaaret -territories.SA=Saudi-Arabia -territories.FR=Ranska -territories.FO=F\u00e4rsaaret -territories.057=Mikronesia -territories.FM=Mikronesian liittovaltio -territories.RW=Ruanda -territories.054=Melanesia -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.QU=Euroopan unioni -territories.EH=L\u00e4nsi-Sahara -territories.EG=Egypti -territories.EE=Viro -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.DM=Dominica -territories.035=Kaakkois-Aasia -territories.PW=Palau -territories.034=Etel\u00e4-Aasia -territories.DK=Tanska -territories.DJ=Djibouti -territories.PT=Portugali -territories.PS=Palestiina -territories.030=It\u00e4-Aasia -territories.PR=Puerto Rico -territories.DE=Saksa -territories.PN=Pitcairn -territories.PM=Saint-Pierre ja Miquelon -territories.PL=Puola -territories.PK=Pakistan -territories.PH=Filippiinit -territories.PG=Papua-Uusi-Guinea -territories.PF=Ranskan Polynesia -territories.CZ=T\u0161ekki -territories.PE=Peru -territories.CY=Kypros -territories.CX=Joulusaari -territories.CV=Kap Verde -territories.PA=Panama -territories.CU=Kuuba -territories.CS=Serbia ja Montenegro -territories.CR=Costa Rica -territories.029=Karibia -territories.CO=Kolumbia -territories.CN=Kiina -territories.CM=Kamerun -territories.CL=Chile -territories.CK=Cookinsaaret -territories.021=pohjoinen Amerikka -territories.CI=Norsunluurannikko -territories.CH=Sveitsi -territories.CG=Kongo-Brazzaville -territories.CF=Keski-Afrikan tasavalta -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 -territories.BV=Bouvet\u2019nsaari -territories.BT=Bhutan -territories.BS=Bahama -territories.BR=Brasilia -territories.019=Amerikka -territories.018=etel\u00e4inen Afrikka -territories.NZ=Uusi-Seelanti -territories.017=Keski-Afrikka -territories.BO=Bolivia -territories.BN=Brunei -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 +zoneStrings=Alaska\u00aeAlaskan normaaliaika\u00ae\u00aeAlaskan kes\u00e4aika\u00ae\u00ae\u00a9America_Central\u00aeYhdysvaltain keskinen normaaliaika\u00ae\u00aeYhdysvaltain keskinen kes\u00e4aika\u00ae\u00ae\u00a9America_Eastern\u00aeYhdysvaltain it\u00e4inen normaaliaika\u00ae\u00aeYhdysvaltain it\u00e4inen kes\u00e4aika\u00ae\u00ae\u00a9America_Mountain\u00aeKalliovuorten normaaliaika\u00ae\u00aeKalliovuorten kes\u00e4aika\u00ae\u00ae\u00a9America_Pacific\u00aeYhdysvaltain Tyynenmeren normaaliaika\u00ae\u00aeYhdysvaltain Tyynenmeren kes\u00e4aika\u00ae\u00ae\u00a9Atlantic\u00aeKanadan Atlantin normaaliaika\u00ae\u00aeKanadan Atlantin kes\u00e4aika\u00ae\u00ae\u00a9China\u00aeKiinan normaaliaika\u00aeCST (Kiina)\u00aeKiinan kes\u00e4aika\u00aeCDT (Kiina)\u00ae\u00a9Europe_Central\u00aeKeski-Euroopan normaaliaika\u00ae\u00aeKeski-Euroopan kes\u00e4aika\u00ae\u00ae\u00a9Europe_Eastern\u00aeIt\u00e4-Euroopan normaaliaika\u00ae\u00aeIt\u00e4-Euroopan kes\u00e4aika\u00ae\u00ae\u00a9GMT\u00aeGreenwichin normaaliaika\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeIsraelin normaaliaika\u00aeIST (Israel)\u00aeIsraelin kes\u00e4aika\u00ae\u00ae\u00a9Japan\u00aeJapanin normaaliaika\u00ae\u00aeJapanin kes\u00e4aika\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundlandin normaaliaika\u00ae\u00aeNewfoundlandin kes\u00e4aika\u00ae\u00ae\u00a9 +territories.001=maailma +territories.002=Afrikka +territories.003=Pohjois-Amerikka +territories.005=Etel\u00e4-Amerikka +territories.009=Oseania territories.011=L\u00e4nsi-Afrikka -territories.BI=Burundi +territories.013=V\u00e4li-Amerikka +territories.014=It\u00e4-Afrikka +territories.015=Pohjois-Afrikka +territories.017=Keski-Afrikka +territories.018=etel\u00e4inen Afrikka +territories.019=Amerikka +territories.021=pohjoinen Amerikka +territories.029=Karibia +territories.030=It\u00e4-Aasia +territories.034=Etel\u00e4-Aasia +territories.035=Kaakkois-Aasia +territories.039=Etel\u00e4-Eurooppa +territories.053=Australia ja Uusi-Seelanti +territories.054=Melanesia +territories.057=Mikronesia +territories.061=Polynesia +territories.062=Etel\u00e4- ja Keski-Aasia +territories.142=Aasia +territories.143=Keski-Aasia +territories.145=L\u00e4nsi-Aasia +territories.150=Eurooppa +territories.151=It\u00e4-Eurooppa +territories.154=Pohjois-Eurooppa +territories.155=L\u00e4nsi-Eurooppa 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 -territories.ZW=Zimbabwe -territories.NL=Alankomaat -territories.BA=Bosnia ja Hertsegovina -territories.NI=Nicaragua -territories.NG=Nigeria -territories.NF=Norfolkinsaari -territories.AZ=Azerbaid\u017ean -territories.NE=Niger -territories.AX=Ahvenanmaa -territories.NC=Uusi-Kaledonia -territories.AW=Aruba -territories.ZM=Sambia -territories.NA=Namibia -territories.AU=Australia -territories.AT=It\u00e4valta -territories.AS=Amerikan Samoa -territories.AR=Argentiina -territories.AQ=Antarktis -territories.009=Oseania -territories.MZ=Mosambik -territories.AO=Angola -territories.MY=Malesia -territories.AN=Alankomaiden Antillit -territories.MX=Meksiko -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.AI=Anguilla -territories.001=maailma -territories.MS=Montserrat -territories.MR=Mauritania -territories.AG=Antigua ja Barbuda -territories.MQ=Martinique -territories.AF=Afganistan -territories.MP=Pohjois-Mariaanit -territories.AE=Arabiemiirikunnat -territories.MO=Macao +territories.419=Latinalainen Amerikka ja Karibia +territories.830=Kanaalisaaret territories.AD=Andorra -territories.MN=Mongolia -territories.MM=Myanmar -territories.ML=Mali -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 -territories.YE=Jemen -territories.LY=Libya -territories.LV=Latvia -territories.155=L\u00e4nsi-Eurooppa -territories.LU=Luxemburg -territories.154=Pohjois-Eurooppa -territories.LT=Liettua -territories.LS=Lesotho -territories.LR=Liberia -territories.151=It\u00e4-Eurooppa -territories.150=Eurooppa -territories.LK=Sri Lanka -territories.LI=Liechtenstein -territories.LC=Saint Lucia -territories.LB=Libanon -territories.LA=Laos -territories.KZ=Kazakstan -territories.KY=Caymansaaret -territories.KW=Kuwait -territories.145=L\u00e4nsi-Aasia -territories.143=Keski-Aasia -territories.142=Aasia -territories.KR=Etel\u00e4-Korea -territories.KP=Pohjois-Korea -territories.KN=Saint Kitts ja Nevis -territories.KM=Komorit -territories.KI=Kiribati -territories.WS=Samoa -territories.KH=Kambod\u017ea -territories.KG=Kirgisia -territories.KE=Kenia -territories.WF=Wallis ja Futuna -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=Vatikaani -territories.IT=Italia -territories.IS=Islanti -territories.IR=Iran -territories.IQ=Irak -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 -territories.ID=Indonesia -territories.UM=Yhdysvaltain pienet erillissaaret -territories.UG=Uganda -territories.UA=Ukraina -territories.HU=Unkari -territories.HT=Haiti -territories.HR=Kroatia -territories.TZ=Tansania -territories.HN=Honduras +territories.AE=Arabiemiirikunnat +territories.AF=Afganistan +territories.AG=Antigua ja Barbuda +territories.AI=Anguilla +territories.AL=Albania +territories.AM=Armenia +territories.AN=Alankomaiden Antillit +territories.AO=Angola +territories.AQ=Antarktis +territories.AR=Argentiina +territories.AS=Amerikan Samoa +territories.AT=It\u00e4valta +territories.AU=Australia +territories.AW=Aruba +territories.AX=Ahvenanmaa +territories.AZ=Azerbaid\u017ean +territories.BA=Bosnia ja Hertsegovina +territories.BB=Barbados +territories.BD=Bangladesh +territories.BE=Belgia +territories.BF=Burkina Faso +territories.BG=Bulgaria +territories.BH=Bahrain +territories.BI=Burundi +territories.BJ=Benin +territories.BL=Saint-Barth\u00e9lemy +territories.BM=Bermuda +territories.BN=Brunei +territories.BO=Bolivia +territories.BR=Brasilia +territories.BS=Bahama +territories.BT=Bhutan +territories.BV=Bouvet\u2019nsaari +territories.BW=Botswana +territories.BY=Valko-Ven\u00e4j\u00e4 +territories.BZ=Belize +territories.CA=Kanada +territories.CC=Kookossaaret +territories.CD=Kongo-Kinshasa +territories.CF=Keski-Afrikan tasavalta +territories.CG=Kongo-Brazzaville +territories.CH=Sveitsi +territories.CI=Norsunluurannikko +territories.CK=Cookinsaaret +territories.CL=Chile +territories.CM=Kamerun +territories.CN=Kiina +territories.CO=Kolumbia +territories.CR=Costa Rica +territories.CS=Serbia ja Montenegro +territories.CU=Kuuba +territories.CV=Kap Verde +territories.CX=Joulusaari +territories.CY=Kypros +territories.CZ=T\u0161ekki +territories.DE=Saksa +territories.DJ=Djibouti +territories.DK=Tanska +territories.DM=Dominica +territories.DO=Dominikaaninen tasavalta +territories.DZ=Algeria +territories.EC=Ecuador +territories.EE=Viro +territories.EG=Egypti +territories.EH=L\u00e4nsi-Sahara +territories.ER=Eritrea +territories.ES=Espanja +territories.ET=Etiopia +territories.FI=Suomi +territories.FJ=Fid\u017ei +territories.FK=Falklandinsaaret +territories.FM=Mikronesian liittovaltio +territories.FO=F\u00e4rsaaret +territories.FR=Ranska +territories.GA=Gabon +territories.GB=Britannia +territories.GD=Grenada +territories.GE=Georgia +territories.GF=Ranskan Guayana +territories.GG=Guernsey +territories.GH=Ghana +territories.GI=Gibraltar +territories.GL=Gr\u00f6nlanti +territories.GM=Gambia +territories.GN=Guinea +territories.GP=Guadeloupe +territories.GQ=P\u00e4iv\u00e4ntasaajan Guinea +territories.GR=Kreikka +territories.GS=Etel\u00e4-Georgia ja Etel\u00e4iset Sandwichsaaret +territories.GT=Guatemala +territories.GU=Guam +territories.GW=Guinea-Bissau +territories.GY=Guyana +territories.HK=Hongkong \u2013 Kiinan erityishallintoalue territories.HM=Heard- ja McDonaldinsaaret -territories.TW=Taiwan -territories.TV=Tuvalu -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.eka=ekajuk -languages.ijo=id\u017eo -languages.xh=xhosa -languages.sux=sumeri -languages.sus=susu -languages.mis=luokittelematon kieli -languages.loz=lozi -languages.tog=malawintonga -languages.zbl=blisskieli -languages.pon=pohnpei -languages.min=minangkabau -languages.suk=sukuma -languages.wo=wolof -languages.lol=mongo -languages.kut=kutenai -languages.mic=micmac -languages.wa=valloni -languages.kum=kumykki -languages.zap=sapoteekki -languages.ain=ainu -languages.cus=kuu\u0161ilainen kieli -languages.jbo=lojban -languages.doi=dogri -languages.zza=zaza -languages.vo=volap\u00fck -languages.oto=otomi-kieli -languages.vi=vietnam -languages.vai=vai -languages.rar=rarotonga -languages.ve=venda -languages.rap=rapanui -languages.raj=rajastani -languages.ota=osmani -languages.nzi=nzima -languages.nap=napoli -languages.uz=uzbekki -languages.uga=ugarit -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=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-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=tongantonga -languages.tn=tswana -languages.tl=tagalog -languages.tk=turkmeeni -languages.ti=tigrinja -languages.th=thai -languages.kru=kurukh -languages.tg=tad\u017eikki -languages.byn=bilin -languages.te=telugu -languages.kro=kru-kieli -languages.csb=ka\u0161ubi -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=etel\u00e4sotho -languages.ss=swazi -languages.sr=serbia -languages.sq=albania -languages.men=mende -languages.crp=kreoli- tai pidgin-kieli -languages.so=somali -languages.afh=afrihili -languages.sn=\u0161ona -languages.sm=samoa -languages.sl=sloveeni -languages.grc=muinaiskreikka -languages.sk=slovakki -languages.grb=grebo -languages.si=sinhala -languages.sh=serbokroatia -languages.crh=kriminturkki -languages.afa=afro-aasialainen kieli -languages.sg=sango -languages.se=pohjoissaame -languages.sd=sindhi -languages.udm=udmurtti -languages.sc=sardi -languages.sa=sanskrit -languages.rw=ruanda -languages.nwc=klassinen newari -languages.ru=ven\u00e4j\u00e4 -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=ket\u0161ua -languages.tig=tigre -languages.son=songhai -languages.cpp=portugaliin perustuva kreoli- tai pidgin-kieli -languages.rup=aromania -languages.sog=sogdi -languages.ada=adangme -languages.kos=kosrae -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=nubialainen kieli -languages.pt=portugali -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.yap=japi -languages.ach=at\u0161oli -languages.yao=jao -languages.phi=filippiinil\u00e4inen kieli -languages.pl=puola -languages.ace=aceh -languages.pi=paali -languages.pt_PT=portugalinportugali -languages.pa=punjabi -languages.bug=bugi -languages.iba=iban -languages.sms=koltansaame -languages.bua=burjaatti -languages.mas=maasai -languages.smn=inarinsaame -languages.os=osseetti -languages.map=austronesialainen kieli -languages.or=oriya -languages.man=mandingo -languages.smj=luulajansaame -languages.smi=saamelaiskieli -languages.mak=makassar -languages.om=oromo -languages.mai=maithili -languages.oj=od\u017eibwa -languages.mag=magahi -languages.mad=madura -languages.sma=etel\u00e4saame -languages.oc=oksitaani -languages.nso=pohjoissotho -languages.btk=batak -languages.myv=ers\u00e4 -languages.es_ES=espanjanespanja -languages.de_AT=it\u00e4vallansaksa -languages.dgr=dogrib -languages.ny=njand\u017ea -languages.myn=maya-kieli -languages.nv=navajo -languages.kmb=kimbundu -languages.nr=etel\u00e4-ndebele -languages.gmh=keskiyl\u00e4saksa -languages.no=norja -languages.nn=norjan nynorsk -languages.nl=hollanti -languages.root=juuri -languages.ng=ndonga -languages.sla=slaavilainen kieli -languages.ne=nepali -languages.nd=pohjois-ndebele -languages.cmc=t\u0161am-kieli -languages.tet=tetum -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 -languages.mn=mongoli -languages.frm=keskiranska -languages.ml=malayalam -languages.jrb=juutalaisarabia -languages.mk=makedonia -languages.mi=maori -languages.mh=marshall -languages.mg=malagassi -languages.nqo=n\u2019ko -languages.mwr=marwari -languages.bra=brad\u017e -languages.mwl=mirandeesi -languages.den=slevi -languages.lv=latvia -languages.lu=katanganluba -languages.del=delaware -languages.lt=liettua -languages.lo=lao -languages.ln=lingala -languages.li=limburg -languages.ewo=ewondo -languages.lg=ganda -languages.lb=luxemburg -languages.la=latina -languages.jpr=juutalaispersia -languages.vot=vatja -languages.sit=sinotiibetil\u00e4inen kieli -languages.ky=kirgiisi -languages.kw=korni -languages.kv=komi -languages.ku=kurdi -languages.sio=sioux-kieli -languages.ks=ka\u0161miri -languages.kr=kanuri -languages.awa=awadhi -languages.ko=korea -languages.kn=kannada -languages.km=khmer -languages.en_GB=britannianenglanti -languages.kl=gr\u00f6nlanti -languages.kk=kazakki -languages.rom=romani -languages.kj=kuanjama -languages.sid=sidamo -languages.ki=kikuju -languages.kg=kongo -languages.non=muinaisnorja -languages.ka=georgia -languages.mus=creek -languages.roa=romaaninen kieli -languages.nog=nogai -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 +territories.HN=Honduras +territories.HR=Kroatia +territories.HT=Haiti +territories.HU=Unkari +territories.ID=Indonesia +territories.IE=Irlanti +territories.IL=Israel +territories.IM=Mansaari +territories.IN=Intia +territories.IO=Brittil\u00e4inen Intian valtameren alue +territories.IQ=Irak +territories.IR=Iran +territories.IS=Islanti +territories.IT=Italia +territories.JE=Jersey +territories.JM=Jamaika +territories.JO=Jordania +territories.JP=Japani +territories.KE=Kenia +territories.KG=Kirgisia +territories.KH=Kambod\u017ea +territories.KI=Kiribati +territories.KM=Komorit +territories.KN=Saint Kitts ja Nevis +territories.KP=Pohjois-Korea +territories.KR=Etel\u00e4-Korea +territories.KW=Kuwait +territories.KY=Caymansaaret +territories.KZ=Kazakstan +territories.LA=Laos +territories.LB=Libanon +territories.LC=Saint Lucia +territories.LI=Liechtenstein +territories.LK=Sri Lanka +territories.LR=Liberia +territories.LS=Lesotho +territories.LT=Liettua +territories.LU=Luxemburg +territories.LV=Latvia +territories.LY=Libya +territories.MA=Marokko +territories.MC=Monaco +territories.MD=Moldova +territories.ME=Montenegro +territories.MF=Saint-Martin +territories.MG=Madagaskar +territories.MH=Marshallinsaaret +territories.MK=Makedonia +territories.ML=Mali +territories.MM=Myanmar +territories.MN=Mongolia +territories.MO=Macao \u2013 Kiinan erityishallintoalue +territories.MP=Pohjois-Mariaanit +territories.MQ=Martinique +territories.MR=Mauritania +territories.MS=Montserrat +territories.MT=Malta +territories.MU=Mauritius +territories.MV=Malediivit +territories.MW=Malawi +territories.MX=Meksiko +territories.MY=Malesia +territories.MZ=Mosambik +territories.NA=Namibia +territories.NC=Uusi-Kaledonia +territories.NE=Niger +territories.NF=Norfolkinsaari +territories.NG=Nigeria +territories.NI=Nicaragua +territories.NL=Alankomaat +territories.NO=Norja +territories.NP=Nepal +territories.NR=Nauru +territories.NU=Niue +territories.NZ=Uusi-Seelanti +territories.OM=Oman +territories.PA=Panama +territories.PE=Peru +territories.PF=Ranskan Polynesia +territories.PG=Papua-Uusi-Guinea +territories.PH=Filippiinit +territories.PK=Pakistan +territories.PL=Puola +territories.PM=Saint-Pierre ja Miquelon +territories.PN=Pitcairn +territories.PR=Puerto Rico +territories.PS=Palestiina +territories.PT=Portugali +territories.PW=Palau +territories.PY=Paraguay +territories.QA=Qatar +territories.QO=ulkomeri +territories.QU=Euroopan unioni +territories.RE=R\u00e9union +territories.RO=Romania +territories.RS=Serbia +territories.RU=Ven\u00e4j\u00e4 +territories.RW=Ruanda +territories.SA=Saudi-Arabia +territories.SB=Salomonsaaret +territories.SC=Seychellit +territories.SD=Sudan +territories.SE=Ruotsi +territories.SG=Singapore +territories.SH=Saint Helena +territories.SI=Slovenia +territories.SJ=Huippuvuoret ja Jan Mayen +territories.SK=Slovakia +territories.SL=Sierra Leone +territories.SM=San Marino +territories.SN=Senegal +territories.SO=Somalia +territories.SR=Surinam +territories.ST=S\u00e3o Tom\u00e9 ja Pr\u00edncipe +territories.SV=El Salvador +territories.SY=Syyria +territories.SZ=Swazimaa +territories.TC=Turks- ja Caicossaaret +territories.TD=T\u0161ad +territories.TF=Ranskan ulkopuoliset etel\u00e4iset alueet +territories.TG=Togo +territories.TH=Thaimaa +territories.TJ=Tad\u017eikistan +territories.TK=Tokelau +territories.TL=It\u00e4-Timor +territories.TM=Turkmenistan +territories.TN=Tunisia +territories.TO=Tonga +territories.TR=Turkki +territories.TT=Trinidad ja Tobago +territories.TV=Tuvalu +territories.TW=Taiwan +territories.TZ=Tansania +territories.UA=Ukraina +territories.UG=Uganda +territories.UM=Yhdysvaltain pienet erillissaaret +territories.US=Yhdysvallat +territories.UY=Uruguay +territories.UZ=Uzbekistan +territories.VA=Vatikaani +territories.VC=Saint Vincent ja Grenadiinit +territories.VE=Venezuela +territories.VG=Brittil\u00e4iset Neitsytsaaret +territories.VI=Yhdysvaltain Neitsytsaaret +territories.VN=Vietnam +territories.VU=Vanuatu +territories.WF=Wallis ja Futuna +territories.WS=Samoa +territories.YE=Jemen +territories.YT=Mayotte +territories.ZA=Etel\u00e4-Afrikka +territories.ZM=Sambia +territories.ZW=Zimbabwe +territories.ZZ=tuntematon tai virheellinen alue +languages.aa=afar +languages.ab=abhaasi +languages.ace=aceh +languages.ach=at\u0161oli +languages.ada=adangme +languages.ady=adyge +languages.ae=avesta +languages.af=afrikaans +languages.afa=afro-aasialainen kieli +languages.afh=afrihili +languages.ain=ainu +languages.ak=akan +languages.akk=akkadi +languages.ale=aleutti +languages.alg=algonkin-kieli +languages.alt=altai +languages.am=amhara +languages.an=aragonia +languages.ang=muinaisenglanti +languages.anp=angika +languages.apa=apa\u0161\u0161ikieli +languages.ar=arabia +languages.arc=aramea +languages.arn=araukaani +languages.arp=arapaho +languages.art=keinotekoinen kieli +languages.arw=arawak +languages.as=assami +languages.ast=asturia +languages.ath=athabasca-kieli languages.aus=australialainen kieli -languages.kho=khotani -languages.ja=japani -languages.khi=khoisan-kieli -languages.pau=palau -languages.chy=cheyenne -languages.tai=thaikieli -languages.iu=inuktitut -languages.pap=papiamentu -languages.it=italia -languages.sgn=viittomakieli -languages.is=islanti -languages.kha=khasi -languages.chr=cherokee -languages.pam=pampanga -languages.pal=pahlavi -languages.chp=chipewyan -languages.io=ido -languages.cho=choctaw -languages.chn=chinook-jargon -languages.chm=mari -languages.tyv=tuva +languages.av=avaari +languages.awa=awadhi +languages.ay=aimara +languages.az=azeri +languages.ba=ba\u0161kiiri +languages.bad=banda +languages.bai=bamileke-kieli +languages.bal=belut\u0161i +languages.ban=bali +languages.bas=basa +languages.bat=balttilainen kieli +languages.be=valkoven\u00e4j\u00e4 +languages.bej=bed\u017ea +languages.bem=bemba +languages.ber=berberikieli +languages.bg=bulgaria +languages.bh=bihari +languages.bho=bhod\u017epuri +languages.bi=bislama +languages.bik=bikol +languages.bin=bini +languages.bla=mustajalka +languages.bm=bambara +languages.bn=bengali languages.bnt=bantukieli -languages.pag=pangasinan -languages.ik=inupiatun -languages.chk=chuuk -languages.ii=sichuanin-yi -languages.haw=havaiji -languages.lam=lamba -languages.ig=igbo -languages.chg=t\u0161agatai -languages.sga=muinaisiiri -languages.paa=papualaiskieli -languages.ie=interlingue -languages.id=indonesia -languages.lah=lahnda -languages.day=dajakki +languages.bo=tiibet +languages.br=bretoni +languages.bra=brad\u017e +languages.bs=bosnia +languages.btk=batak +languages.bua=burjaatti +languages.bug=bugi +languages.byn=bilin +languages.ca=katalaani +languages.cad=caddo +languages.cai=keskiamerikkalainen intiaanikieli +languages.car=karibi +languages.cau=kaukasialainen kieli +languages.cch=atsam +languages.ce=t\u0161et\u0161eeni +languages.ceb=cebuano +languages.cel=kelttil\u00e4inen kieli +languages.ch=t\u0161amorro languages.chb=t\u0161ibt\u0161a -languages.ia=interlingua -languages.lad=juutalaisespanja -languages.hz=herero -languages.hai=haida -languages.dar=dargi -languages.hy=armenia -languages.ath=athabasca-kieli -languages.hu=unkari -languages.ht=haiti +languages.chg=t\u0161agatai +languages.chk=chuuk +languages.chm=mari +languages.chn=chinook-jargon +languages.cho=choctaw +languages.chp=chipewyan +languages.chr=cherokee +languages.chy=cheyenne +languages.cmc=t\u0161am-kieli +languages.co=korsika +languages.cop=kopti +languages.cpe=englantiin perustuva kreoli- tai pidgin-kieli +languages.cpf=ranskaan perustuva kreoli- tai pidgin-kieli +languages.cpp=portugaliin perustuva kreoli- tai pidgin-kieli +languages.cr=cree +languages.crh=krimintataari +languages.crp=kreoli- tai pidgin-kieli +languages.cs=t\u0161ekki +languages.csb=ka\u0161ubi +languages.cu=kirkkoslaavi +languages.cus=kuu\u0161ilainen kieli +languages.cv=t\u0161uvassi +languages.cy=kymri +languages.da=tanska languages.dak=dakota -languages.hr=kroatia -languages.ho=hiri-motu -languages.hi=hindi +languages.dar=dargi +languages.day=dajakki +languages.de=saksa +languages.de_AT=it\u00e4vallansaksa +languages.de_CH=sveitsinyl\u00e4saksa +languages.del=delaware +languages.den=slevi +languages.dgr=dogrib +languages.din=dinka +languages.doi=dogri +languages.dra=dravidakieli +languages.dsb=alasorbi +languages.dua=duala +languages.dum=keskihollanti +languages.dv=divehi languages.dyu=djula -languages.he=heprea -languages.ast=asturia -languages.kfo=norsunluurannikonkoro -languages.ha=hausa -languages.wen=sorbin kieli -languages.gv=manx -languages.gu=gujarati -languages.sem=seemil\u00e4inen kieli -languages.sel=selkuppi -languages.iro=irokeesikieli -languages.gn=guarani -languages.gl=galicia -languages.en_CA=kanadanenglanti -languages.arw=arawak -languages.gez=ge\u2019ez -languages.art=keinotekoinen kieli -languages.gd=gaeli -languages.ira=iranilainen kieli -languages.ga=iiri -languages.arp=arapaho -languages.arn=araukaani -languages.fy=l\u00e4nsifriisi -languages.bla=mustajalka -languages.gem=germaaninen kieli -languages.ypk=jupikkikieli -languages.arc=aramea -languages.fr=ranska -languages.fo=f\u00e4\u00e4ri -languages.cel=kelttil\u00e4inen kieli -languages.fj=fid\u017ei -languages.fi=suomi -languages.ff=fulani -languages.tvl=tuvalu -languages.ceb=cebuano -languages.fa=persia +languages.dz=dzongkha +languages.ee=ewe +languages.efi=efik +languages.egy=muinaisegypti +languages.eka=ekajuk +languages.el=kreikka +languages.elx=elami +languages.en=englanti 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.en_CA=kanadanenglanti +languages.en_GB=britannianenglanti +languages.en_US=amerikanenglanti +languages.enm=keskienglanti languages.eo=esperanto -languages.en=englanti -languages.el=kreikka -languages.tut=altailainen kieli -languages.niu=niue -languages.tup=tupi-kieli -languages.ee=ewe -languages.tum=tumbuka -languages.nl_BE=flaami +languages.es=espanja languages.es_419=amerikanespanja -languages.mos=mossi -languages.dz=dzongkha -languages.kcg=tyap -languages.nic=nigeril\u00e4is-kongolainen kieli -languages.lus=lusai -languages.fiu=suomalais-ugrilainen kieli -languages.dv=divehi -languages.nia=nias -languages.moh=mohawk -languages.luo=luo -languages.lun=lunda -languages.apa=apa\u0161\u0161ikieli +languages.es_ES=espanjanespanja +languages.et=viro +languages.eu=baski +languages.ewo=ewondo +languages.fa=farsi +languages.fan=fang +languages.fat=fanti +languages.ff=fulani +languages.fi=suomi languages.fil=filipino -languages.lui=luise\u00f1o +languages.fiu=suomalais-ugrilainen kieli +languages.fj=fid\u017ei +languages.fo=f\u00e4\u00e4ri +languages.fon=fon +languages.fr=ranska +languages.fr_CA=kanadanranska +languages.fr_CH=sveitsinranska +languages.frm=keskiranska +languages.fro=muinaisranska +languages.frr=pohjoisfriisi +languages.frs=it\u00e4friisi +languages.fur=friuli +languages.fy=l\u00e4nsifriisi +languages.ga=iiri +languages.gaa=ga +languages.gay=gajo +languages.gba=gbaja +languages.gd=gaeli +languages.gem=germaaninen kieli +languages.gez=ge\u2019ez +languages.gil=kiribati +languages.gl=galicia +languages.gmh=keskiyl\u00e4saksa +languages.gn=guarani +languages.goh=muinaisyl\u00e4saksa +languages.gon=gondi +languages.gor=gorontalo +languages.got=gootti +languages.grb=grebo +languages.grc=muinaiskreikka +languages.gsw=sveitsinsaksa +languages.gu=gud\u017earati +languages.gv=manx +languages.gwi=gwit\u0161in +languages.ha=hausa +languages.hai=haida +languages.haw=havaiji +languages.he=heprea +languages.hi=hindi +languages.hil=hiligaino +languages.him=himat\u0161ali +languages.hit=heetti +languages.hmn=hmong +languages.ho=hiri-motu +languages.hr=kroatia +languages.hsb=yl\u00e4sorbi +languages.ht=haiti +languages.hu=unkari languages.hup=hupa -languages.cch=atsam -languages.bin=bini -languages.de=saksa -languages.lua=luluanluba -languages.bik=bikol -languages.was=washo -languages.und=m\u00e4\u00e4ritt\u00e4m\u00e4t\u00f6n -languages.war=waray -languages.da=tanska -languages.dum=keskihollanti -languages.wal=walamo -languages.mno=manobo-kieli -languages.wak=wakash-kieli -languages.sat=santali -languages.cy=kymri -languages.sas=sasak +languages.hy=armenia +languages.hz=herero +languages.ia=interlingua +languages.iba=iban +languages.id=indonesia +languages.ie=interlingue +languages.ig=igbo +languages.ii=sichuanin-yi +languages.ijo=id\u017eo +languages.ik=inupiatun +languages.ilo=iloko +languages.inc=indoarjalainen kieli +languages.ine=indoeurooppalainen kieli +languages.inh=inguu\u0161i +languages.io=ido +languages.ira=iranilainen kieli +languages.iro=irokeesikieli +languages.is=islanti +languages.it=italia +languages.iu=inuktitut +languages.ja=japani +languages.jbo=lojban +languages.jpr=juutalaispersia +languages.jrb=juutalaisarabia +languages.jv=jaava +languages.ka=georgia +languages.kaa=karakalpakki +languages.kab=kabyyli +languages.kac=kachin +languages.kaj=jju +languages.kam=kamba +languages.kar=karen +languages.kaw=kavi 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\u0161ilainen kieli -languages.dua=duala -languages.co=korsika -languages.sai=etel\u00e4amerikkalainen intiaanikieli +languages.kcg=tyap +languages.kfo=norsunluurannikonkoro +languages.kg=kongo +languages.kha=khasi +languages.khi=khoisan-kieli +languages.kho=khotani +languages.ki=kikuju +languages.kj=kuanjama +languages.kk=kazakki +languages.kl=kalaallisut +languages.km=khmer +languages.kmb=kimbundu +languages.kn=kannada +languages.ko=korea +languages.kok=konkani +languages.kos=kosrae +languages.kpe=kpelle +languages.kr=kanuri +languages.krc=karat\u0161ai-balkaari +languages.krl=karjala +languages.kro=kru-kieli +languages.kru=kurukh +languages.ks=ka\u0161miri +languages.ku=kurdi +languages.kum=kumykki +languages.kut=kutenai +languages.kv=komi +languages.kw=korni +languages.ky=kirgiisi +languages.la=latina +languages.lad=ladino +languages.lah=lahnda +languages.lam=lamba +languages.lb=luxemburg +languages.lez=lezgi +languages.lg=ganda +languages.li=limburg +languages.ln=lingala +languages.lo=lao +languages.lol=mongo +languages.loz=lozi +languages.lt=liettua +languages.lu=katanganluba +languages.lua=luluanluba +languages.lui=luise\u00f1o +languages.lun=lunda +languages.luo=luo +languages.lus=lusai +languages.lv=latvia +languages.mad=madura +languages.mag=magahi +languages.mai=maithili +languages.mak=makassar +languages.man=mandingo +languages.map=austronesialainen kieli +languages.mas=maasai +languages.mdf=mok\u0161a +languages.mdr=mandar +languages.men=mende +languages.mg=malagassi +languages.mga=keski-iiri +languages.mh=marshall +languages.mi=maori +languages.mic=micmac +languages.min=minangkabau +languages.mis=luokittelematon kieli +languages.mk=makedonia +languages.mkh=mon-khmer-kieli +languages.ml=malajalam +languages.mn=mongoli languages.mnc=mant\u0161u -languages.sah=jakuutti -languages.kaw=kavi -languages.inh=inguu\u0161i -languages.gba=gbaja +languages.mni=manipuri +languages.mno=manobo-kieli +languages.mo=moldavia +languages.moh=mohawk +languages.mos=mossi +languages.mr=marathi +languages.ms=malaiji +languages.mt=malta +languages.mul=monia kieli\u00e4 +languages.mun=mundakieli +languages.mus=creek +languages.mwl=mirandeesi +languages.mwr=marwari +languages.my=burma +languages.myn=maya-kieli +languages.myv=ers\u00e4 +languages.na=nauru +languages.nah=nahuatl +languages.nai=pohjoisamerikkalainen intiaanikieli +languages.nap=napoli +languages.nb=norjan bokm\u00e5l +languages.nd=pohjois-ndebele +languages.nds=alasaksa +languages.ne=nepali +languages.new=newari +languages.ng=ndonga +languages.nia=nias +languages.nic=nigeril\u00e4is-kongolainen kieli +languages.niu=niue +languages.nl=hollanti +languages.nl_BE=flaami +languages.nn=norjan nynorsk +languages.no=norja +languages.nog=nogai +languages.non=muinaisnorja +languages.nqo=n\u2019ko +languages.nr=etel\u00e4-ndebele +languages.nso=pohjoissotho +languages.nub=nubialainen kieli +languages.nv=navajo +languages.nwc=klassinen newari +languages.ny=njand\u017ea +languages.nym=nyamwezi +languages.nyn=nyankole +languages.nyo=nyoro +languages.nzi=nzima +languages.oc=oksitaani +languages.oj=od\u017eibwa +languages.om=oromo +languages.or=orija +languages.os=osseetti +languages.osa=osage +languages.ota=osmani +languages.oto=otomi-kieli +languages.pa=pand\u017eabi +languages.paa=papualaiskieli +languages.pag=pangasinan +languages.pal=pahlavi +languages.pam=pampanga +languages.pap=papiamentu +languages.pau=palau +languages.peo=muinaispersia +languages.phi=filippiinil\u00e4inen kieli +languages.phn=foinikia +languages.pi=paali +languages.pl=puola +languages.pon=pohnpei +languages.pra=prakrit-kieli +languages.pro=muinaisprovensaali +languages.ps=pa\u0161tu +languages.pt=portugali +languages.pt_BR=brasilianportugali +languages.pt_PT=portugalinportugali +languages.qu=ket\u0161ua +languages.raj=rad\u017eastani +languages.rap=rapanui +languages.rar=rarotonga +languages.rm=retoromaani +languages.rn=rundi +languages.ro=romania +languages.roa=romaaninen kieli +languages.rom=romani +languages.root=juuri +languages.ru=ven\u00e4j\u00e4 +languages.rup=aromania +languages.rw=ruanda +languages.sa=sanskrit languages.sad=sandawe -languages.ch=t\u0161amorro -languages.ine=indoeurooppalainen kieli -languages.bho=bhojpuri -languages.enm=keskienglanti -languages.kar=karen -languages.inc=indoarjalainen kieli -languages.ce=t\u0161et\u0161eeni -languages.gay=gajo -languages.ca=katalaani -languages.umb=umbundu +languages.sah=jakuutti +languages.sai=etel\u00e4amerikkalainen intiaanikieli +languages.sal=sali\u0161ilainen kieli +languages.sam=samarianaramea +languages.sas=sasak +languages.sat=santali +languages.sc=sardi +languages.scn=sisilia +languages.sco=skotti +languages.sd=sindhi +languages.se=pohjoissaame +languages.sel=selkuppi +languages.sem=seemil\u00e4inen kieli +languages.sg=sango +languages.sga=muinaisiiri +languages.sgn=viittomakieli +languages.sh=serbokroaatti +languages.shn=shan +languages.si=sinhali +languages.sid=sidamo +languages.sio=sioux-kieli +languages.sit=sinotiibetil\u00e4inen kieli +languages.sk=slovakki +languages.sl=sloveeni +languages.sla=slaavilainen kieli +languages.sm=samoa +languages.sma=etel\u00e4saame +languages.smi=saamelaiskieli +languages.smj=luulajansaame +languages.smn=inarinsaame +languages.sms=koltansaame +languages.sn=\u0161ona +languages.snk=soninke +languages.so=somali +languages.sog=sogdi +languages.son=songhai +languages.sq=albania +languages.sr=serbia +languages.srn=sranan +languages.srr=serer +languages.ss=swazi +languages.ssa=niilil\u00e4is-saharalainen kieli +languages.st=etel\u00e4sotho +languages.su=sunda +languages.suk=sukuma +languages.sus=susu +languages.sux=sumeri +languages.sv=ruotsi +languages.sw=swahili +languages.syc=muinaissyyria languages.syr=syyria -languages.kam=kamba -languages.anp=angika +languages.ta=tamil +languages.tai=thaikieli +languages.te=telugu +languages.tem=temne +languages.ter=tereno +languages.tet=tetum +languages.tg=tad\u017eikki +languages.th=thai +languages.ti=tigrinja +languages.tig=tigre +languages.tiv=tiv +languages.tk=turkmeeni +languages.tkl=tokelau +languages.tl=tagalog +languages.tlh=klingon +languages.tli=tlingit +languages.tmh=tama\u0161ek +languages.tn=tswana +languages.to=tongantonga +languages.tog=malawintonga +languages.tpi=tok-pisin +languages.tr=turkki +languages.ts=tsonga languages.tsi=tsim\u0161i -languages.kaj=jju -languages.ang=muinaisenglanti -languages.kac=kachin -languages.cau=kaukasialainen kieli -languages.kab=kabyyli -languages.kaa=karakalpakki -languages.bs=bosnia -languages.car=karibi -languages.br=bretoni -languages.syc=syc -languages.bo=tiibet -languages.bn=bengali -languages.bm=bambara -languages.gaa=ga -languages.cai=keskiamerikkalainen intiaanikieli -languages.bi=bislama -languages.bh=bihari -languages.bg=bulgaria -languages.be=valkoven\u00e4j\u00e4 -languages.pt_BR=brasilianportugali -languages.cad=caddo -languages.ba=ba\u0161kiiri -languages.zu=zulu +languages.tt=tataari +languages.tum=tumbuka +languages.tup=tupi-kieli +languages.tut=altailainen kieli +languages.tvl=tuvalu +languages.tw=twi +languages.ty=tahiti +languages.tyv=tuva +languages.udm=udmurtti +languages.ug=uiguuri +languages.uga=ugarit +languages.uk=ukraina +languages.umb=umbundu +languages.und=m\u00e4\u00e4ritt\u00e4m\u00e4t\u00f6n +languages.ur=urdu +languages.uz=uzbekki +languages.vai=vai +languages.ve=venda +languages.vi=vietnam +languages.vo=volap\u00fck +languages.vot=vatja +languages.wa=valloni +languages.wak=wakash-kieli +languages.wal=walamo +languages.war=waray +languages.was=washo +languages.wen=sorbin kieli +languages.wo=wolof +languages.xal=kalmukki +languages.xh=xhosa +languages.yao=jao +languages.yap=japi +languages.yi=jiddi\u0161 +languages.yo=joruba +languages.ypk=jupikkikieli +languages.za=zhuang +languages.zap=sapoteekki +languages.zbl=blisskieli languages.zen=zenaga -languages.pro=muinaisprovensaali -languages.hsb=yl\u00e4sorbi -languages.az=azeri -languages.ay=aimara -languages.av=avaari -languages.as=assami -languages.dsb=alasorbi -languages.ar=arabia -languages.ilo=iloko -languages.elx=elami languages.zh=kiina -languages.an=aragonia -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-kieli -languages.ale=aleutti -languages.mkh=mon-khmer-kieli -languages.yi=jiddi\u0161 -languages.dra=dravidakieli -languages.ber=berberikieli -languages.nds=alasaksa -languages.bem=bemba -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 +languages.zh_Hans=yksinkertaistettu kiina +languages.zh_Hant=perinteinen kiina +languages.znd=zande +languages.zu=zulu +languages.zun=zuni +languages.zxx=ei kielellist\u00e4 sis\u00e4lt\u00f6\u00e4 +languages.zza=zaza +variants.1606NICT=my\u00f6h\u00e4iskeskiranska 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.1901=saksan perinteinen oikeinkirjoitus +variants.1994=sloveenin resian murteen yhdenmukaistettu oikeinkirjoitus +variants.1996=saksan uusi oikeinkirjoitus +variants.AREVELA=it\u00e4armenialainen +variants.AREVMDA=l\u00e4nsiarmenialainen variants.BAKU1926=yhten\u00e4istetty turkkilainen latinalainen aakkosto -variants.SAAHO=afarin saho-murre -variants.ROZAJ=sloveenin resia-murre +variants.BISKE=sloveenin resian San Giorgion/Bilan alamurre +variants.BOONT=englannin boontling-murre +variants.FONIPA=kansainv\u00e4linen foneettinen aakkosto IPA +variants.FONUPA=uralilainen foneettinen aakkosto UPA +variants.LIPAW=sloveenin resian Lipovazin/Lipovecin alamurre variants.MONOTON=monotoninen kreikka +variants.NEDIS=sloveenin natisonen murre +variants.NJIVA=sloveenin resian Gnivan/Njivan alamurre +variants.OSOJS=sloveenin resian Oseaccon/Osojanen alamurre variants.POLYTON=polytoninen kreikka -variants.AREVELA=it\u00e4armenialainen +variants.POSIX=tietokonem\u00e4\u00e4rittely POSIX +variants.REVISED=uudistettu oikeinkirjoitus +variants.ROZAJ=sloveenin resian murre +variants.SAAHO=afarin saho-murre variants.SCOTLAND=skotlanninenglanti -variants.VALENCIA=katalaanin valencia-murre -variants.BOONT=englannin boontling-murre -variants.1606NICT=my\u00f6h\u00e4iskeskiranska +variants.SCOUSE=englannin scouse-murre +variants.SOLBA=sloveenin resian Stolvizzan/Solbican alamurre +variants.TARASK=valkoven\u00e4j\u00e4n tara\u0161kevitsa-oikeinkirjoitus +variants.VALENCIA=katalaanin valencian murre diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties index 62194e5b9ab..24f73901287 100644 --- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties +++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties @@ -17,65 +17,65 @@ groupingSeparator=, digit=# percentFormat=#,##0% currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00 -currenciesDisplayName.CHF=Swiss Francs +currenciesDisplayName.AED=United Arab Emirates Dirham +currenciesDisplayName.ARS=Argentine Peso currenciesDisplayName.AUD=Australian Dollar -currenciesDisplayName.RUB=Russian Ruble +currenciesDisplayName.BGN=Bulgarian Lev +currenciesDisplayName.BOB=Bolivian Boliviano +currenciesDisplayName.BRL=Brazilian Real +currenciesDisplayName.CAD=Canadian Dollar +currenciesDisplayName.CHF=Swiss Francs +currenciesDisplayName.CLP=Chilean Peso +currenciesDisplayName.CNY=Yuan Renminbi +currenciesDisplayName.COP=Colombian Peso currenciesDisplayName.CZK=Czech Koruna -currenciesDisplayName.THB=Thai Baht -currenciesDisplayName.SEK=Sweden Kronor +currenciesDisplayName.DEM=Deutsche Marks +currenciesDisplayName.DKK=Denmark Kroner +currenciesDisplayName.EEK=Estonian Kroon +currenciesDisplayName.EGP=Egyptian Pound +currenciesDisplayName.EUR=Euros +currenciesDisplayName.FRF=French Franc +currenciesDisplayName.GBP=British Pounds Sterling +currenciesDisplayName.HKD=Hong Kong Dollars 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.IDR=Indonesian Rupiah +currenciesDisplayName.ILS=Israeli Shekel 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.KRW=South Korean Won +currenciesDisplayName.LTL=Lithuanian Litas +currenciesDisplayName.MAD=Moroccan Dirham +currenciesDisplayName.MXN=Mexico Peso +currenciesDisplayName.MYR=Malaysian Ringgit currenciesDisplayName.NOK=Norwegian Kroner -currenciesDisplayName.EUR=Euros -currenciesDisplayName.HKD=Hong Kong Dollars -currenciesDisplayName.IDR=Indonesian Rupiah -currenciesDisplayName.ZAR=South African Rand +currenciesDisplayName.NZD=New Zealand Dollars +currenciesDisplayName.PEN=Peruvian Nuevo Sol +currenciesDisplayName.PHP=Philippine Peso +currenciesDisplayName.PKR=Pakistan Rupee +currenciesDisplayName.PLN=Polish NewZloty +currenciesDisplayName.RON=Romanian Leu +currenciesDisplayName.RSD=Serbian Dinar +currenciesDisplayName.RUB=Russian Ruble +currenciesDisplayName.SAR=Saudi Riyal +currenciesDisplayName.SEK=Sweden Kronor 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.SKK=Slovak Koruna +currenciesDisplayName.THB=Thai Baht currenciesDisplayName.TRL=Turkish Lira -currenciesDisplayName.BRL=Brazilian Real -currenciesDisplayName.DEM=Deutsche Marks +currenciesDisplayName.TRY=Turkish Lira +currenciesDisplayName.TWD=New Taiwan Dollar +currenciesDisplayName.USD=US Dollar 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 +currenciesDisplayName.XXX=XXX +currenciesDisplayName.ZAR=South African Rand currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1~1WW(` diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/Messages.class index 9b3d765a117b99d38298f53600c7f81799c99f36..39697a899c8ebedeb471d90d60f486cfbc81d3c7 100644 GIT binary patch delta 12 Ucmey*@tfo0bRmJPG|7%ex??wh|707_{HlK=n! delta 16 Ycmdn>fo0bRmJPG|7%eu>?wh|707_#Bk^lez diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Messages.class index f86b8f70c3b811d7dcfa7626c0cef218208d34af..ce6cc5c67d8b50df6f7a10dfed64473fc13275d7 100644 GIT binary patch delta 12 Ucmey*@t47}PxbG9+W zhA(I6l@*8v^XEbMwXy>GVEzIKKUY>jWwIAnp^%66HipCvKtq`rxPW9BgXrY5T!!h9 z3^@$R47m)|40#Og4EYQb7>XFCGn6o_VJKzT%aFiuf}w(e8>rp{;vj~tKotxO91KSp rwlQpHU<8`Ak6{NxAJ9}`hE)tZ8Fn!+1N90r>;|f10m|*osB46_(^ XGVEet2I>`L*bP+20+inawrMW_9^Wl| diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class index c31f88ae6b74d306b73dab3ebb57a392a4fc81ac..30d1674c646648a08053b1301646e5abbb4c0aaf 100644 GIT binary patch delta 1674 zcmZXUdvFs~6vn?BHoJMOZ3xo3NXI}cgH1|7MrBe4#MmMwATO0FwuUyP>Cm8U9g48tD^ECOErVL7WgZ@H{GtHPm*aBX0AsIE>wDDM$#^qGo3XC3A!STE40 zIy5(wADNRssWuX=pIToV4%IlY4ohr^>mABw*CrKdNOzzbTU1!FRlnbMO5Ua7MeNp# z?bo{Y2v~+xIUul4#mm^Q$LzDNdqu#J9jS~~geyH|Wj3_%kg+BVKb?_i*z~vQ>5j}1 zhv*H@uMgKoJp%&+ZFp5cEVAKB6-NaCRWNz4ox0$wh;<&=;lWw0f&11(=yrbe>1O=pua9z0r@8d%S z9|&aV!<-pb6(8Ya{hT8ppHfkSPj#Qu)Bke;yN5{vV}e1C(S$FI*p~t$1_$+!V}QQQ znOX1^^%fW%_(nxvWZ3W>9c-);eGS(zs{-$?bniXRSiIUOR_jb5;E zdOv#;=+|qM*Dp2Ul(z+*cH{{7txagvtnJ7Z=)h3FtjR67z701vVspwI8He12)y8gg zCjxQwPML*fV8LOGEzzVFjBCS$HcV|riF-x@rN*I|3B*bhDEBKq_pAgWK21p=>T^HP zV@G`MI@30iC-7iTkw&OK_k2d0aAi-mM%aDsg~sUw7E7ZH(G3Fei-o+*(xCVF#UWXZ zP>f(RuiFa_J{u6bhRe;6Fa|PifgJ&;C`2ZT&=0p^5XO<~VvNLij7E^w1l)m%n2yO< zj44=(sdy68@HD+^a3|up3)>johZ3~nZqEH4oWKl@{$7r}2&b9<4DQ2ugzyt)!Wm=v zDaiq_@D%sPwvD!35Q zFQjSq=a@sn^Vq0orDq0S@cLS@dHyY!grs@T`GQf0qQmc3Mtku#SoJ(tpP{y$3h!OK3@lahJt z<^pI~h#V|}A4`Z-jA%Z@nJ?v3A0c{=qLh4u+2PrwrzsInaf3kHXbv?SU0cX)j1mpOVXD(nPiQFUOA)pf=-ry~Yjx|ezFk??Bc6!9iWweOTf016#C+UKopsE!A+X*c zgG@iu*kIshqgCTQsW%$D#LLz=-}Ql46t13A{U~-A?Bq3TiEqk{O$vW@tfI0!S`jKM z^Riol?DY-XFV0wH)ba1Jy7{vTTE!c!o*kW48R}8k!^=K}dd$mP3OzeoSsttK(UrFi z4v?+zOpnfY42Jcaz@W!e}PMRH?6ZLXL@(&w1 zv}oL@drHQJ?8u`AA5g5&%A-}2{d~m79*!wGTLaQNyA3|!Q|pqyP(NWXos(81J(Tsi z!WWVxg#(L=Lv}a5w9me>W~TQmI3;=u><*kZ=tO5P--$yScvfK~FA(aL>)iKyg}baQ zl-tYBaNgj;?u+Su6+ccI9+}RCaDr>n`ZsbS+)SvI97RNHBw=c;d4NNV=Li!xDoIaDfzy<6mIpb{B+{ky zkYuMZXeT@AIZv@jW@lSZ^9(MLb%tl@Ac8we%WHW~#AegTVwT7UP)*5r(N-*B&&x}O zyqXMKDq)()S}q=Yn4=|?OV;+`;EDt*WwdL;!L?%9&2Tx*2+9i(l~fh7pF)7CR@Y3^ zS1&0vUSOToFEgv~#cxcWx6BmB67Yr-mys`!p)M5Go?xPY7!__FmM+f{Zsx`Xof^SrkpQz;kg?=hFTgag zRPbEJ4pz`A-b1XUja3{Icu%p0bFAfO>bN8^f3Z$DT(3NAP#J7go!F$VWwYwe7Igz# zRZq65TWC}f`T5!?mxx^X^EktwEPFA3q`f_Tv23bccvT;M66I-RsC+JprOAE%a7cHH eu;mWlx=6cSWc(uFUV%D!wp7?u{3^*^{Pqv(5O(nZ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$1.class index ca86d0404628f4580353e7caedeb60ab5e4dff28..05958fdaee7af4d409e6b70f1bd42e74b87ebab6 100644 GIT binary patch delta 31 ncmaFG{)&Br8#Ckj$?nWyyqg)=8MZPAGi+lJW!N!!6|(~Xp}`4J delta 31 ncmaFG{)&Br8#Cjo$?nWyyz3a)88$EoGi+oKW!OA<6|(~XpmGT~ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class index ea003e4f0ff92cb501126edd32f8ac26e1ebb261..3e1615abdfadd04d44ed2619142b544ee6095f32 100644 GIT binary patch delta 23 ecmZ3>zLtFhCo`kyWG?17R!Ig9MybiU%nkrRj|9B{ delta 23 ecmZ3>zLtFhCo`kKWG?17RuKjcM$yT+%nkrQ{sgW7 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class index 560a505a0a9404c684c35f730dd52a34e3bd60fb..c0998c8745ad827e97ea754f72882cc2753009ed 100644 GIT binary patch delta 39 vcmcc5ai3#DB{Sp6$yLk~M9(sCF`Q!%VK~nq$8do`gW)2B0mG%q@+=Mj2{H@e delta 39 vcmcc5ai3#DB{SoZ$yLk~L{BhqF`Q%&VK~Jg$8efKgW(K=0mIqJ@+=Mj2Gt9` diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class index cd7143a5c50981dbede017b71e8e6afcbd78a80d..62bf927c584754d7eaa611d21de7af284331f069 100644 GIT binary patch delta 39 vcmaFD@q}YT9W&#V$@R<=L~k*0G2CVlVYtH}$8eWHgW(>70mJ>tDl85F5#J0` delta 39 vcmaFD@q}YT9W&$k$@R<=M6WV%Fbu&+GsIYG?>i diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class index fee2bd107bad1093f771aac99a0390b8a7e08616..c8ed40054c3a3a5c473c06e01da16ecc1e0d5435 100644 GIT binary patch delta 31 ncmZ3>v6f>)GBe|g$tlb=yzdye7~V68FnnN;VfZ-tEwcjvtSJhp delta 31 ncmZ3>v6f>)GBe}j$tlb=ye}EJ7+x`mFuZ1vVR$q7Ewcjvs@e*V diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class index bb6d72a3e33fe81ad05a4e32de65c3593e511819..d5be6d22668fbbc170105e0c9d0ca1e5aba4ab6c 100644 GIT binary patch delta 23 fcmZ3@zM6dlJ2T_w$sEjatlt?p7=BF7W_ADoSrZ3L delta 23 fcmZ3@zM6dlJ2T_E$sEjate+S-7(P$VW_ADoSb_&V diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class index 44390e12701f50fb41bd91690363e0e1b28d2e46..b2e37e11242c566453c619e6bc542a6a2b6c6a9d 100644 GIT binary patch delta 35 rcmZ3%v4Uem5HsVi$-&Gmg8vvq82&TJF)}cyF)}jfF)~el!R!D4zLg0k delta 35 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 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class index f5a91597b31c89037e673f1aa3baab27f401a280..c785c7a3e43b889adcd38e430f1d1435acbf64ba 100644 GIT binary patch delta 23 ecmbQiF@s}67BgezmFB^#=O@ delta 23 ecmbQiF@s}67BgeTmFB*ar9j diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class index df3cba9300931a90c8f4deff4a5c389905a4a933..31d7a46c00b75fff3c62f743b16abdb1ce525fad 100644 GIT binary patch delta 23 ecmX@fev*BIDl=o#WHshE)^-LChK|Xd%nkrmcm|OG delta 23 ecmX@fev*BIDl=o_WHshE);0zXhW5#w%nkrmTLz8* diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class index 0c082d0d0de86532d11ea4bce897a5884231340e..04b7561333fdbb8010bd4fcf7b31b0e9abd65a28 100644 GIT binary patch delta 23 fcmcb}dXaTQ7!%{($>B`)tcMub84gdL&141uVbced delta 23 fcmcb}dXaTQ7!%{3$>B`)tOps`84gXJ&141uVYUa7 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class index 53468e34872a4df4bc038a73b029aa9c815fd3ea..ee1af075f39b1db3c3528d9fa6f624596b428cfa 100644 GIT binary patch delta 346 zcmWNNODF?y9LGO@rkLm2B+Cv;9?QvGT+~Erwro47<#8d8Qp3rktT=L@e^Fj}l|qbp zOD>Wk9F#~SmMbMiIrv?^kKgb6`~B({v&Zb=AEPRX{2D(DsTCM-k&Fiu75Y2fpA;aG zdXi|=-i*1bX6dzHp_Lrk$fcbk(ZzI8N;hTn;1pd+A8z{bF+f0c14A-3Os8;=k%+?- zRG~2v7?*Vun3=@N6a`G)R0@|WjcaA$Mr8@x vxYgC>tL%IE!6O+w$ycJ-cqWe*3VGGV7N2tIL5oAx=xsrdeiw9WYo_ZTlzUk* delta 348 zcmWNNO(?^09L7ICFJ&_?Yk!ICpu}hgH5V7PqBWG+L8j&4HKoQ4#o{PM{X$;yS_)w` z?~#L~gk7X0B+HeOq8xlr&*%Hn^VAbBiI+rv%&Ii{YyL<|bCZOZRBEx}*54U^QzI!f zVIrt~nG01da%;t)ojf|or;}n~Cn3t{p`2da!j<%iLqGKl5D*SBOdBI~i-s7Dx~w4; z9w(Uzv75xk6uHb$#4Il6s1S8CkB3ESSfY+)e5~MSl?IsuvTtUMF4iS*LjpDlv&9(O zOtZrR5&4V??Q+H*G4{FRfCmnF=7=|r`7D%&FHZR5TqSU!61h|su2ecV%HURIi`t24 xkL^0=UOIRnlSgUg3A>mS@PdO^?KJ9@R}UF3J!n|;so_wy`rUA;8l9U}{SOyYS;hbW diff --git a/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java index 1c92d348d2b..4f6d687fd4b 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java +++ b/libjava/classpath/tools/gnu/classpath/tools/common/Messages.java @@ -1,5 +1,5 @@ /* Messages.java -- i18n support for tools common code - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,7 @@ import java.util.ResourceBundle; class Messages { private static final String BUNDLE_NAME - = "gnu.classpath.tools.common.Messages"; //$NON-NLS-1$ + = "gnu.classpath.tools.common.messages"; //$NON-NLS-1$ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java index 19f10174332..9a9c4ec8aa2 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java +++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/Messages.java @@ -1,5 +1,5 @@ /* Messages.java -- i18n support for getopt - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,7 +44,7 @@ import java.util.ResourceBundle; class Messages { private static final String BUNDLE_NAME - = "gnu.classpath.tools.getopt.Messages"; //$NON-NLS-1$ + = "gnu.classpath.tools.getopt.messages"; //$NON-NLS-1$ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java index 9225444be27..9a723cadf1c 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java @@ -104,6 +104,8 @@ public class JniHelper result.append("_3"); else if (c == '/') result.append("_"); + else if (c == '$') + result.append("_"); else if ((c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) result.append(c); diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java index cb8bcd8d9c2..cf5fed39f13 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java @@ -1,5 +1,5 @@ /* JniIncludePrinter.java - Generate a JNI header file - Copyright (C) 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2006, 2007, 2011 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -63,6 +63,7 @@ public class JniIncludePrinter { klass.linkSupers(); boolean wroteAny = false; + ClassWrapper headerClass = klass; for (; klass != null; klass = klass.superClass) { Iterator i = klass.fields.iterator(); @@ -77,7 +78,7 @@ public class JniIncludePrinter continue; // Note that we don't want to mangle the field name. - String name = (JniHelper.mangle(klass.name) + "_" + field.name); + String name = (JniHelper.mangle(headerClass.name) + "_" + field.name); out.print("#undef "); out.println(name); out.print("#define "); diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java b/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java index bec04f00dab..894a5c4d2c0 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/javah/Main.java @@ -58,9 +58,11 @@ import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.Set; import java.util.Map; import org.objectweb.asm.ClassReader; +import org.objectweb.asm.tree.InnerClassNode; public class Main { @@ -101,6 +103,9 @@ public class Main // Map class names to lists of Text objects. HashMap> textMap = new HashMap>(); + // Set of classes which have been parsed + Set parsed = new HashSet(); + void readCommandFile(String textFileName) throws OptionException { FileInputStream fis; @@ -317,7 +322,7 @@ public class Main return result; } - private void writeHeaders(HashMap klasses, Printer printer) + private void writeHeaders(Map klasses, Printer printer) throws IOException { Iterator> i = klasses.entrySet().iterator(); @@ -332,6 +337,53 @@ public class Main } } + private Map parseClasses(Iterator inputs) + throws IOException + { + Map results = new HashMap(); + while (inputs.hasNext()) + { + // Let user specify either kind of class name or a + // file name. + Object item = inputs.next(); + ClassWrapper klass; + File filename; + if (item instanceof File) + { + // Load class from file. + if (verbose) + System.err.println("[reading file " + item + "]"); + klass = getClass((File) item); + filename = new File(klass.name); + } + else + { + // Load class given the class name. + String className = ((String) item).replace('.', '/'); + if (verbose) + System.err.println("[reading class " + className + "]"); + // Use the name the user specified, even if it is + // different from the ultimate class name. + filename = new File(className); + klass = getClass(className); + } + results.put(filename, klass); + parsed.add(item.toString()); + + // Check to see if there are inner classes to also parse + Iterator innerClasses = klass.innerClasses.iterator(); + HashSet innerNames = new HashSet(); + while (innerClasses.hasNext()) + { + String innerName = ((InnerClassNode) innerClasses.next()).name; + if (!parsed.contains(innerName)) + innerNames.add(innerName); + } + results.putAll(parseClasses(innerNames.iterator())); + } + return results; + } + protected void postParse(String[] names) { // Nothing here. @@ -385,36 +437,7 @@ public class Main } } - Iterator i = klasses.iterator(); - HashMap results = new HashMap(); - while (i.hasNext()) - { - // Let user specify either kind of class name or a - // file name. - Object item = i.next(); - ClassWrapper klass; - File filename; - if (item instanceof File) - { - // Load class from file. - if (verbose) - System.err.println("[reading file " + item + "]"); - klass = getClass((File) item); - filename = new File(klass.name); - } - else - { - // Load class given the class name. - String className = ((String) item).replace('.', '/'); - if (verbose) - System.err.println("[reading class " + className + "]"); - // Use the name the user specified, even if it is - // different from the ultimate class name. - filename = new File(className); - klass = getClass(className); - } - results.put(filename, klass); - } + Map results = parseClasses(klasses.iterator()); writeHeaders(results, printer); } @@ -457,7 +480,7 @@ public class Main ClassWrapper result = readClass(is); classMap.put(name, result); } - return (ClassWrapper) classMap.get(name); + return classMap.get(name); } public static void main(String[] args) throws IOException diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/common/messages.properties similarity index 94% rename from libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties rename to libjava/classpath/tools/resource/gnu/classpath/tools/common/messages.properties index 17e79c453ac..afd751e6447 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, 2008 Free Software Foundation, Inc. +# messages.properties -- English language messages +# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is part of GNU Classpath. # diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/messages.properties similarity index 95% rename from libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties rename to libjava/classpath/tools/resource/gnu/classpath/tools/getopt/messages.properties index a747ab4b473..61bfd0e8fdc 100644 --- a/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/messages.properties @@ -1,5 +1,5 @@ -# MessagesBundle.properties -- English language messages -# Copyright (C) 2006 Free Software Foundation, Inc. +# messages.properties -- English language messages +# Copyright (C) 2006, 2010 Free Software Foundation, Inc. # # This file is part of GNU Classpath. # diff --git a/libjava/classpath/vm/reference/gnu/classpath/VMStackWalker.java b/libjava/classpath/vm/reference/gnu/classpath/VMStackWalker.java index 2214e757110..26c4053565b 100644 --- a/libjava/classpath/vm/reference/gnu/classpath/VMStackWalker.java +++ b/libjava/classpath/vm/reference/gnu/classpath/VMStackWalker.java @@ -1,5 +1,5 @@ /* VMStackWalker.java -- Reference implementation of VM hooks for stack access - Copyright (C) 2005, 2006 Free Software Foundation + Copyright (C) 2005, 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -51,6 +51,9 @@ package gnu.classpath; */ public final class VMStackWalker { + + private VMStackWalker() {} // Prohibits instantiation. + /** * Get a list of all the classes currently executing methods on the * Java stack. getClassContext()[0] is the class associated diff --git a/libjava/classpath/vm/reference/gnu/classpath/VMSystemProperties.java b/libjava/classpath/vm/reference/gnu/classpath/VMSystemProperties.java index 1e0dd4e2632..d1ce7751c24 100644 --- a/libjava/classpath/vm/reference/gnu/classpath/VMSystemProperties.java +++ b/libjava/classpath/vm/reference/gnu/classpath/VMSystemProperties.java @@ -1,5 +1,5 @@ /* VMSystemProperties.java -- Allow the VM to set System properties. - Copyright (C) 2004 Free Software Foundation + Copyright (C) 2004, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -39,8 +39,11 @@ package gnu.classpath; import java.util.Properties; -class VMSystemProperties +final class VMSystemProperties { + + private VMSystemProperties() {} // Prohibits instantiation. + /** * Get the system properties. This is done here, instead of in System, * because of the bootstrap sequence. Note that the native code should diff --git a/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java b/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java index c3a3784f398..391f7af953d 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java @@ -1,5 +1,5 @@ /* VMCPStringBuilder.java -- Growable strings without locking or copying - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -72,6 +72,8 @@ final class VMCPStringBuilder } } + private VMCPStringBuilder() {} // Prohibits instantiation. + /** * Convert this StringBuilder to a String. The * String is composed of the characters currently in this StringBuilder. Note diff --git a/libjava/classpath/vm/reference/gnu/java/lang/VMInstrumentationImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/VMInstrumentationImpl.java index 5501f0f7f5b..d9583ac8cce 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/VMInstrumentationImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/VMInstrumentationImpl.java @@ -1,6 +1,6 @@ /* VMInstrumentationImpl.java -- interface for the GNU implementation of InstrumentationImpl - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,6 +49,8 @@ import java.lang.instrument.Instrumentation; final class VMInstrumentationImpl { + private VMInstrumentationImpl() {} // Prohibits instantiation. + /** * Returns if the current JVM supports class redefinition * diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java index ea49897419b..7b94020a46a 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMClassLoadingMXBeanImpl.java @@ -1,5 +1,5 @@ /* VMClassLoadingMXBeanImpl.java - VM impl. of a class loading bean - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,6 +49,8 @@ package gnu.java.lang.management; final class VMClassLoadingMXBeanImpl { + private VMClassLoadingMXBeanImpl() {} // Prohibits instantiation. + /** * Returns the number of classes currently loaded by * the virtual machine. diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java index 019af0ca411..f421a8aa49f 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMCompilationMXBeanImpl.java @@ -1,5 +1,5 @@ /* VMCompilationMXBeanImpl.java - VM implementation of a compilation bean - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -50,6 +50,8 @@ package gnu.java.lang.management; final class VMCompilationMXBeanImpl { + private VMCompilationMXBeanImpl() {} // Prohibits instantiation. + /** * Returns the number of milliseconds the JIT * compiler has spent compiling Java bytecode diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java index 00861bc21de..99450b4107d 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java @@ -1,5 +1,5 @@ /* VMGarbageCollectorMXBeanImpl.java - VM interface for a GC bean - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -52,6 +52,8 @@ package gnu.java.lang.management; final class VMGarbageCollectorMXBeanImpl { + private VMGarbageCollectorMXBeanImpl() {} // Prohibits instantiation. + /** * Returns the number of collections the garbage collector * represented by this bean has made. -1 is returned if the diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java index 7f69bdfb741..12aa886186e 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java @@ -1,5 +1,5 @@ /* VMMemoryMXBeanImpl.java - VM impl. of a memory bean - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -57,6 +57,8 @@ import java.util.List; final class VMMemoryMXBeanImpl { + private VMMemoryMXBeanImpl() {} // Prohibits instantiation. + /** * Returns an instance of {@link java.lang.management.MemoryUsage} * with appropriate initial, used, committed and maximum values diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java index 477329f0aed..81a8c0d216a 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java @@ -1,5 +1,5 @@ /* VMMemoryManagerMXBeanImpl.java - VM interface for a memory manager bean - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -56,6 +56,8 @@ import java.util.List; final class VMMemoryManagerMXBeanImpl { + private VMMemoryManagerMXBeanImpl() {} // Prohibits instantiation. + /** * Returns an array containing the names of the memory pools * this memory manager manages. diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java index 36cd2586a8e..39775c4edae 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java @@ -1,5 +1,5 @@ /* MemoryPoolMXBeanImpl.java - VM interface for memory pool beans - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,6 +49,8 @@ import java.lang.management.MemoryUsage; final class VMMemoryPoolMXBeanImpl { + private VMMemoryPoolMXBeanImpl() {} // Prohibits instantiation. + /** * Returns memory usage statistics for the specified pool * just after a best-effort attempt to free memory. This diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java index 20b3f9ed271..5530007aeb1 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java @@ -1,5 +1,5 @@ /* VMOperatingSystemMXBeanImpl.java - VM implementation of an OS bean - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -56,6 +56,8 @@ final class VMOperatingSystemMXBeanImpl } } + private VMOperatingSystemMXBeanImpl() {} // Prohibits instantiation. + /** * Returns the system load average from the last * minute. diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java index 32a86604614..1bffa75c50d 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java @@ -1,5 +1,5 @@ /* VMRuntimeMXBeanImpl.java - VM implementation of an runtime bean - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -48,6 +48,8 @@ import gnu.classpath.SystemProperties; final class VMRuntimeMXBeanImpl { + private VMRuntimeMXBeanImpl() {} // Prohibits instantiation. + /** * Returns the command-line arguments supplied * to the virtual machine, excluding those supplied diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java index 33448d9d534..8fd0d90a281 100644 --- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java @@ -1,5 +1,5 @@ /* VMThreadMXBeanImpl.java - VM impl. of a thread bean - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -58,6 +58,8 @@ final class VMThreadMXBeanImpl */ private static int filled; + private VMThreadMXBeanImpl() {} // Prohibits instantiation. + /** * Returns the ids of cycles of deadlocked threads, occurring * due to monitor ownership or ownable synchronizer ownership. diff --git a/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java b/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java index da0f893cfbc..399470036d2 100644 --- a/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/net/VMPlainDatagramSocketImpl.java @@ -1,5 +1,5 @@ /* PlainDatagramSocketImpl.java -- VM interface for DatagramSocket impl - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -53,7 +53,7 @@ import java.net.SocketException; * @author Ingo Proetel (proetel@aicas.com) * @author Roman Kennke (kennke@aicas.com) */ -public final class VMPlainDatagramSocketImpl +final class VMPlainDatagramSocketImpl { /** * Option id for the IP_TTL (time to live) value. @@ -70,8 +70,10 @@ public final class VMPlainDatagramSocketImpl } } + private VMPlainDatagramSocketImpl() {} // Prohibits instantiation. + /** - * Binds this socket to a particular port and interface + * Binds this socket to a particular port and interface. * * @param socket the socket object * @param port the port to bind to diff --git a/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java b/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java index a369704522a..9a075342572 100644 --- a/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java +++ b/libjava/classpath/vm/reference/gnu/java/nio/VMPipe.java @@ -1,5 +1,5 @@ /* VMPipe.java -- Reference implementation for VM hooks used by PipeImpl - Copyright (C) 2004 Free Software Foundation + Copyright (C) 2004, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -58,6 +58,8 @@ final class VMPipe } } + private VMPipe() {} // Prohibits instantiation. + /** * Create a pipe, consisting of a readable VMChannel and a writable * VMChannel. The readable channel is returned is the first element diff --git a/libjava/classpath/vm/reference/gnu/java/nio/VMSelector.java b/libjava/classpath/vm/reference/gnu/java/nio/VMSelector.java index 4d37c2c1ca9..18fad5c8a62 100644 --- a/libjava/classpath/vm/reference/gnu/java/nio/VMSelector.java +++ b/libjava/classpath/vm/reference/gnu/java/nio/VMSelector.java @@ -1,5 +1,5 @@ /* VMSelector.java -- - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,8 +40,9 @@ package gnu.java.nio; import gnu.classpath.Configuration; import java.io.IOException; -public final class VMSelector +final class VMSelector { + static { // load the shared library needed for native methods. @@ -51,6 +52,8 @@ public final class VMSelector } } + private VMSelector() {} // Prohibits instantiation. + // A timeout value of 0 means block forever. static native int select (int[] read, int[] write, int[] except, long timeout) diff --git a/libjava/classpath/vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java b/libjava/classpath/vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java index 86faa097c17..fef92d8457f 100644 --- a/libjava/classpath/vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java +++ b/libjava/classpath/vm/reference/gnu/java/security/jce/prng/VMSecureRandom.java @@ -1,5 +1,5 @@ /* VMSecureRandom.java -- random seed generator. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -55,6 +55,8 @@ package gnu.java.security.jce.prng; final class VMSecureRandom { + private VMSecureRandom() {} // Prohibits instantiation. + /** * Generate a random seed. Implementations are free to generate * fewer random bytes than are requested, and leave the remaining @@ -104,7 +106,8 @@ final class VMSecureRandom return length; } - static class Spinner implements Runnable + static class Spinner + implements Runnable { volatile byte value; volatile boolean running; @@ -121,7 +124,7 @@ final class VMSecureRandom value++; } - private void stop() + void stop() { running = false; } diff --git a/libjava/classpath/vm/reference/java/io/VMConsole.java b/libjava/classpath/vm/reference/java/io/VMConsole.java new file mode 100644 index 00000000000..69c9df9527f --- /dev/null +++ b/libjava/classpath/vm/reference/java/io/VMConsole.java @@ -0,0 +1,44 @@ +/* VMConsole.java -- helper for java.io.Console + Copyright (C) 2012 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.io; + +public final class VMConsole +{ + static native String readPassword(Console con); +} diff --git a/libjava/classpath/vm/reference/java/io/VMFile.java b/libjava/classpath/vm/reference/java/io/VMFile.java index 2af1e95c864..f2ac5c38c93 100644 --- a/libjava/classpath/vm/reference/java/io/VMFile.java +++ b/libjava/classpath/vm/reference/java/io/VMFile.java @@ -1,5 +1,5 @@ /* VMFile.java -- Class for methods natively accessing files - Copyright (C) 2004, 2006 Free Software Foundation, Inc. + Copyright (C) 2004, 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -50,6 +50,7 @@ import gnu.java.io.PlatformHelper; */ final class VMFile { + // FIXME: We support only case sensitive filesystems currently. static final boolean IS_CASE_SENSITIVE = true; static final boolean IS_DOS_8_3 = false; @@ -62,105 +63,113 @@ final class VMFile } } - /* + private VMFile() {} // Prohibits instantiation. + + /** * This native method does the actual work of getting the last file * modification time. It also does the existence check to avoid the - * overhead of a call to exists() + * overhead of a call to exists(). */ static native long lastModified(String path); - /* + /** * This native method sets the permissions to make the file read only. + * + * @return true if file exists and the operation completed successfully */ static native boolean setReadOnly(String path); /** - * This method is used to create a temporary file + * This method is used to create a temporary file. */ static native boolean create(String path) throws IOException; - /* + /** * This native function actually produces the list of files in this - * directory + * directory. + * + * @return null if dirpath does not exist or is not a directory; + * null or empty array if the directory is unreadable; an array of + * file names in the directory otherwise. */ static native synchronized String[] list(String dirpath); - /* + /** * This native method actually performs the rename. */ static native boolean renameTo(String targetpath, String destpath); - /* + /** * This native method actually determines the length of the file and - * handles the existence check + * handles the existence check. */ static native long length(String path); - /* + /** * This native method does the actual checking of file existence. */ static native boolean exists(String path); - /* - * This native method handles the actual deleting of the file + /** + * This native method handles the actual deleting of the file. */ static native boolean delete(String path); - /* + /** * This method does the actual setting of the modification time. */ static native boolean setLastModified(String path, long time); - /* - * This native method actually creates the directory + /** + * This native method actually creates the directory. */ static native boolean mkdir(String dirpath); /** * Gets the total bytes of the filesystem named by path. */ - public static native long getTotalSpace(String path); + static native long getTotalSpace(String path); /** * Gets the total free bytes of the filesystem named by path. */ - public static native long getFreeSpace(String path); + static native long getFreeSpace(String path); /** * Gets the available bytes of the filesystem named by path. */ - public static native long getUsableSpace(String path); + static native long getUsableSpace(String path); /** * Set the read permission of the file. */ - public static synchronized native boolean setReadable(String path, - boolean readable, - boolean ownerOnly); + static synchronized native boolean setReadable(String path, + boolean readable, + boolean ownerOnly); /** * Set the write permission of the file. */ - public static synchronized native boolean setWritable(String path, - boolean writable, - boolean ownerOnly); + static synchronized native boolean setWritable(String path, + boolean writable, + boolean ownerOnly); /** * Set the execute permission of the file. */ - public static synchronized native boolean setExecutable(String path, - boolean executable, - boolean ownerOnly); + static synchronized native boolean setExecutable(String path, + boolean executable, + boolean ownerOnly); - /* + /** * This native method does the actual check of whether or not a file * is a plain file or not. It also handles the existence check to - * eliminate the overhead of a call to exists() + * eliminate the overhead of a call to exists(). */ static native boolean isFile(String path); /** - * This native method checks file permissions for writing + * This native method checks file permissions for writing. */ static synchronized native boolean canWrite(String path); @@ -170,19 +179,23 @@ final class VMFile static native boolean canWriteDirectory(String path); /** - * This native method checks file permissions for reading + * This native method checks file permissions for reading. + * It also handles the existence check to eliminate the overhead of + * a call to exists(). */ static synchronized native boolean canRead(String path); /** - * This native method checks file permissions for execution + * This native method checks file permissions for execution. + * It also handles the existence check to eliminate the overhead of + * a call to exists(). */ static synchronized native boolean canExecute(String path); - /* + /** * This method does the actual check of whether or not a file is a - * directory or not. It also handle the existence check to eliminate - * the overhead of a call to exists() + * directory or not. It also handles the existence check to eliminate + * the overhead of a call to exists(). */ static native boolean isDirectory(String dirpath); @@ -359,9 +372,9 @@ final class VMFile *

* Note that this method, unlike the other methods which return path * names, can throw an IOException. This is because native method - * might be required in order to resolve the canonical path + * might be required in order to resolve the canonical path. * * @exception IOException If an error occurs */ - public static native String toCanonicalForm(String path) throws IOException; + static native String toCanonicalForm(String path) throws IOException; } diff --git a/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java b/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java index 10e1f34cbd2..a29115bbe39 100644 --- a/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java +++ b/libjava/classpath/vm/reference/java/io/VMObjectInputStream.java @@ -1,5 +1,5 @@ /* ObjectInputStream.java -- Class used to read serialized objects - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,6 +44,7 @@ import java.lang.reflect.Constructor; final class VMObjectInputStream { + static { if (Configuration.INIT_LOAD_LIBRARY) @@ -52,6 +53,8 @@ final class VMObjectInputStream } } + private VMObjectInputStream() {} // Prohibits instantiation. + /** * Allocates a new Object of type clazz but without running the * default constructor on it. It then calls the given constructor on diff --git a/libjava/classpath/vm/reference/java/io/VMObjectStreamClass.java b/libjava/classpath/vm/reference/java/io/VMObjectStreamClass.java index fbaf7d6c8c5..6a78d8ec898 100644 --- a/libjava/classpath/vm/reference/java/io/VMObjectStreamClass.java +++ b/libjava/classpath/vm/reference/java/io/VMObjectStreamClass.java @@ -1,5 +1,5 @@ /* VMObjectStreamClass.java -- VM helper functions for ObjectStreamClass - Copyright (C) 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 2003, 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import java.lang.reflect.Field; final class VMObjectStreamClass { + static { if (Configuration.INIT_LOAD_LIBRARY) @@ -51,6 +52,8 @@ final class VMObjectStreamClass } } + private VMObjectStreamClass() {} // Prohibits instantiation. + /** * Returns true if CLAZZ has a static class initializer * (a.k.a. ). diff --git a/libjava/classpath/vm/reference/java/lang/VMClass.java b/libjava/classpath/vm/reference/java/lang/VMClass.java index a0091c073c5..d80eecdfd9a 100644 --- a/libjava/classpath/vm/reference/java/lang/VMClass.java +++ b/libjava/classpath/vm/reference/java/lang/VMClass.java @@ -303,20 +303,21 @@ final class VMClass return getComponentType(klass).getSimpleName() + "[]"; } String fullName = getName(klass); - int pos = fullName.lastIndexOf("$"); - if (pos == -1) - pos = 0; - else - { - ++pos; - while (Character.isDigit(fullName.charAt(pos))) - ++pos; - } - int packagePos = fullName.lastIndexOf(".", pos); - if (packagePos == -1) - return fullName.substring(pos); - else - return fullName.substring(packagePos + 1); + Class enclosingClass = getEnclosingClass(klass); + if (enclosingClass == null) + // It's a top level class. + return fullName.substring(fullName.lastIndexOf(".") + 1); + + fullName = fullName.substring(enclosingClass.getName().length()); + + // We've carved off the enclosing class name; now we must have '$' + // followed optionally by digits, followed by the class name. + int pos = 1; + while (Character.isDigit(fullName.charAt(pos))) + ++pos; + fullName = fullName.substring(pos); + + return fullName; } /** diff --git a/libjava/classpath/vm/reference/java/lang/VMClassLoader.java b/libjava/classpath/vm/reference/java/lang/VMClassLoader.java index c1d4625883c..bab7c23cc67 100644 --- a/libjava/classpath/vm/reference/java/lang/VMClassLoader.java +++ b/libjava/classpath/vm/reference/java/lang/VMClassLoader.java @@ -1,6 +1,7 @@ /* VMClassLoader.java -- Reference implementation of native interface required by ClassLoader - Copyright (C) 1998, 2001, 2002, 2004, 2005, 2006 Free Software Foundation + Copyright (C) 1998, 2001, 2002, 2004, 2005, 2006, 2010 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -71,7 +72,6 @@ import java.util.zip.ZipFile; final class VMClassLoader { - /** packages loaded by the bootstrap class loader */ static final HashMap definedPackages = new HashMap(); @@ -116,6 +116,7 @@ final class VMClassLoader } } + private VMClassLoader() {} // Prohibits instantiation. /** * Helper to define a class using a string of bytes. This assumes that @@ -172,6 +173,7 @@ final class VMClassLoader return (URL)e.nextElement(); return null; } + /** * Helper to get a list of resources from the bootstrap class loader. * @@ -239,7 +241,6 @@ final class VMClassLoader return v.elements(); } - /** * Returns a String[] of native package names. The default * implementation tries to load a list of package from @@ -284,7 +285,6 @@ final class VMClassLoader return new String[0]; } - /** * Helper to get a package from the bootstrap class loader. * diff --git a/libjava/classpath/vm/reference/java/lang/VMCompiler.java b/libjava/classpath/vm/reference/java/lang/VMCompiler.java index fe740075671..9a7d83facee 100644 --- a/libjava/classpath/vm/reference/java/lang/VMCompiler.java +++ b/libjava/classpath/vm/reference/java/lang/VMCompiler.java @@ -1,5 +1,5 @@ /* VMClassLoader.java -- Reference implementation of compiler interface - Copyright (C) 2004 Free Software Foundation + Copyright (C) 2004, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -58,7 +58,7 @@ final class VMCompiler * compilation failed, true if compilation succeeded * @throws NullPointerException if oneClass is null */ - public static boolean compileClass(Class oneClass) + static boolean compileClass(Class oneClass) { // Never succeed. return false; @@ -72,7 +72,7 @@ final class VMCompiler * compilation failed, true if compilation succeeded * @throws NullPointerException if classNames is null */ - public static boolean compileClasses(String classNames) + static boolean compileClasses(String classNames) { // Note the incredibly lame interface. Always fail. return false; @@ -87,7 +87,7 @@ final class VMCompiler * @return a compiler-specific value, including null * @throws NullPointerException if the compiler doesn't like a null arg */ - public static Object command(Object arg) + static Object command(Object arg) { // Our implementation defines this to a no-op. return null; @@ -98,7 +98,7 @@ final class VMCompiler * to resume operation if it was previously disabled; provided that a * compiler even exists. */ - public static void enable() + static void enable() { } @@ -106,7 +106,7 @@ final class VMCompiler * Calling Compiler.disable() will cause the compiler * to be suspended; provided that a compiler even exists. */ - public static void disable() + static void disable() { } } diff --git a/libjava/classpath/vm/reference/java/lang/VMDouble.java b/libjava/classpath/vm/reference/java/lang/VMDouble.java index 8e523cd2e85..edfa723a052 100644 --- a/libjava/classpath/vm/reference/java/lang/VMDouble.java +++ b/libjava/classpath/vm/reference/java/lang/VMDouble.java @@ -1,5 +1,5 @@ /* VMDouble.java -- VM Specific Double methods - Copyright (C) 2003, 2005 Free Software Foundation + Copyright (C) 2003, 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -65,6 +65,8 @@ final class VMDouble initIDs(); } + private VMDouble() {} // Prohibits instantiation. + /** * Convert the double to the IEEE 754 floating-point "double format" bit * layout. Bit 63 (the most significant) is the sign bit, bits 62-52 @@ -79,7 +81,7 @@ final class VMDouble * @return the bits of the double * @see #longBitsToDouble(long) */ - public static native long doubleToRawLongBits(double value); + static native long doubleToRawLongBits(double value); /** * Convert the argument in IEEE 754 floating-point "double format" bit @@ -94,7 +96,7 @@ final class VMDouble * @see #doubleToLongBits(double) * @see #doubleToRawLongBits(double) */ - public static native double longBitsToDouble(long bits); + static native double longBitsToDouble(long bits); /** * Helper method to convert to string. @@ -103,13 +105,18 @@ final class VMDouble * @param isFloat true if the conversion is requested by Float (results in * fewer digits) */ - public static native String toString(double d, boolean isFloat); + static native String toString(double d, boolean isFloat); /** * Initialize JNI cache. This method is called only by the * static initializer when using JNI. */ - public static native void initIDs(); + private static native void initIDs(); - public static native double parseDouble(String str); + /** + * Parse the specified String as a double. + * @throws NumberFormatException if str cannot be parsed + * @throws NullPointerException if str is null + */ + static native double parseDouble(String str); } diff --git a/libjava/classpath/vm/reference/java/lang/VMFloat.java b/libjava/classpath/vm/reference/java/lang/VMFloat.java index ba523d6973e..e6e784f3392 100644 --- a/libjava/classpath/vm/reference/java/lang/VMFloat.java +++ b/libjava/classpath/vm/reference/java/lang/VMFloat.java @@ -1,5 +1,5 @@ /* VMFloat.java -- VM Specific Float methods - Copyright (C) 2003 Free Software Foundation + Copyright (C) 2003, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -63,6 +63,8 @@ final class VMFloat } } + private VMFloat() {} // Prohibits instantiation. + /** * Convert the float to the IEEE 754 floating-point "single format" bit * layout. Bit 31 (the most significant) is the sign bit, bits 30-23 diff --git a/libjava/classpath/vm/reference/java/lang/VMMath.java b/libjava/classpath/vm/reference/java/lang/VMMath.java index dc5fd420708..35c3f645e42 100644 --- a/libjava/classpath/vm/reference/java/lang/VMMath.java +++ b/libjava/classpath/vm/reference/java/lang/VMMath.java @@ -1,5 +1,5 @@ /* VMMath.java -- Common mathematical functions. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,7 +40,7 @@ package java.lang; import gnu.classpath.Configuration; -class VMMath +final class VMMath { static @@ -51,6 +51,8 @@ class VMMath } } + private VMMath() {} // Prohibits instantiation. + /** * The trigonometric function sin. The sine of NaN or infinity is * NaN, and the sine of 0 retains its sign. This is accurate within 1 ulp, @@ -59,7 +61,7 @@ class VMMath * @param a the angle (in radians) * @return sin(a) */ - public static native double sin(double a); + static native double sin(double a); /** * The trigonometric function cos. The cosine of NaN or infinity is @@ -68,7 +70,7 @@ class VMMath * @param a the angle (in radians) * @return cos(a) */ - public static native double cos(double a); + static native double cos(double a); /** * The trigonometric function tan. The tangent of NaN or infinity @@ -78,7 +80,7 @@ class VMMath * @param a the angle (in radians) * @return tan(a) */ - public static native double tan(double a); + static native double tan(double a); /** * The trigonometric function arcsin. The range of angles returned @@ -89,7 +91,7 @@ class VMMath * @param a the sin to turn back into an angle * @return arcsin(a) */ - public static native double asin(double a); + static native double asin(double a); /** * The trigonometric function arccos. The range of angles returned @@ -100,7 +102,7 @@ class VMMath * @param a the cos to turn back into an angle * @return arccos(a) */ - public static native double acos(double a); + static native double acos(double a); /** * The trigonometric function arcsin. The range of angles returned @@ -112,7 +114,7 @@ class VMMath * @return arcsin(a) * @see #atan2(double, double) */ - public static native double atan(double a); + static native double atan(double a); /** * A special version of the trigonometric function arctan, for @@ -161,7 +163,7 @@ class VMMath * @return theta in the conversion of (x, y) to (r, theta) * @see #atan(double) */ - public static native double atan2(double y, double x); + static native double atan2(double y, double x); /** * Take ea. The opposite of log(). If the @@ -175,7 +177,7 @@ class VMMath * @see #log(double) * @see #pow(double, double) */ - public static native double exp(double a); + static native double exp(double a); /** * Take ln(a) (the natural log). The opposite of exp(). If the @@ -191,7 +193,7 @@ class VMMath * @return the natural log of a * @see #exp(double) */ - public static native double log(double a); + static native double log(double a); /** * Take a square root. If the argument is NaN or negative, the result is @@ -205,7 +207,7 @@ class VMMath * @return the square root of the argument * @see #pow(double, double) */ - public static native double sqrt(double a); + static native double sqrt(double a); /** * Raise a number to a power. Special cases:

    @@ -275,7 +277,7 @@ class VMMath * @param b the power to raise it to * @return ab */ - public static native double pow(double a, double b); + static native double pow(double a, double b); /** * Get the IEEE 754 floating point remainder on two numbers. This is the @@ -291,7 +293,7 @@ class VMMath * @return the IEEE 754-defined floating point remainder of x/y * @see #rint(double) */ - public static native double IEEEremainder(double x, double y); + static native double IEEEremainder(double x, double y); /** * Take the nearest integer that is that is greater than or equal to the @@ -302,7 +304,7 @@ class VMMath * @param a the value to act upon * @return the nearest integer >= a */ - public static native double ceil(double a); + static native double ceil(double a); /** * Take the nearest integer that is that is less than or equal to the @@ -312,7 +314,7 @@ class VMMath * @param a the value to act upon * @return the nearest integer <= a */ - public static native double floor(double a); + static native double floor(double a); /** * Take the nearest integer to the argument. If it is exactly between @@ -322,7 +324,7 @@ class VMMath * @param a the value to act upon * @return the nearest integer to a */ - public static native double rint(double a); + static native double rint(double a); /** *

    @@ -342,7 +344,7 @@ class VMMath * @see #sqrt(double) * @see #pow(double, double) */ - public static native double cbrt(double a); + static native double cbrt(double a); /** *

    @@ -362,7 +364,7 @@ class VMMath * @return the hyperbolic cosine of a. * @since 1.5 */ - public static native double cosh(double a); + static native double cosh(double a); /** *

    @@ -382,7 +384,7 @@ class VMMath * @return ea - 1 * @since 1.5 */ - public static native double expm1(double a); + static native double expm1(double a); /** *

    @@ -402,7 +404,7 @@ class VMMath * @return the hypotenuse matching the supplied parameters. * @since 1.5 */ - public static native double hypot(double a, double b); + static native double hypot(double a, double b); /** *

    @@ -422,7 +424,7 @@ class VMMath * @return the base 10 logarithm of a. * @since 1.5 */ - public static native double log10(double a); + static native double log10(double a); /** *

    @@ -444,7 +446,7 @@ class VMMath * @return the natural logarithm of a + 1. * @since 1.5 */ - public static native double log1p(double a); + static native double log1p(double a); /** *

    @@ -463,7 +465,7 @@ class VMMath * @return the hyperbolic sine of a. * @since 1.5 */ - public static native double sinh(double a); + static native double sinh(double a); /** *

    @@ -488,6 +490,5 @@ class VMMath * @return the hyperbolic tangent of a. * @since 1.5 */ - public static native double tanh(double a); - + static native double tanh(double a); } diff --git a/libjava/classpath/vm/reference/java/lang/VMObject.java b/libjava/classpath/vm/reference/java/lang/VMObject.java index 279f250c089..6a0785330bd 100644 --- a/libjava/classpath/vm/reference/java/lang/VMObject.java +++ b/libjava/classpath/vm/reference/java/lang/VMObject.java @@ -1,5 +1,5 @@ /* VMObject.java -- Reference implementation for VM hooks used by Object - Copyright (C) 1998, 2002, 2005 Free Software Foundation + Copyright (C) 1998, 2002, 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,6 +46,9 @@ package java.lang; */ final class VMObject { + + private VMObject() {} // Prohibits instantiation. + /** * Returns the runtime {@link Class} of a given Object. * diff --git a/libjava/classpath/vm/reference/java/lang/VMString.java b/libjava/classpath/vm/reference/java/lang/VMString.java index e1fbf839023..181e08543f5 100644 --- a/libjava/classpath/vm/reference/java/lang/VMString.java +++ b/libjava/classpath/vm/reference/java/lang/VMString.java @@ -1,5 +1,5 @@ /* VMString.java -- VM Specific String methods - Copyright (C) 2003 Free Software Foundation + Copyright (C) 2003, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -60,6 +60,8 @@ final class VMString */ private static final WeakHashMap internTable = new WeakHashMap(); + private VMString() {} // Prohibits instantiation. + /** * Fetches this String from the intern hashtable. If two Strings are * considered equal, by the equals() method, then intern() will return the diff --git a/libjava/classpath/vm/reference/java/lang/VMSystem.java b/libjava/classpath/vm/reference/java/lang/VMSystem.java index 52a3c1c9f66..0b3d6920055 100644 --- a/libjava/classpath/vm/reference/java/lang/VMSystem.java +++ b/libjava/classpath/vm/reference/java/lang/VMSystem.java @@ -1,5 +1,5 @@ /* VMSystem.java -- helper for java.lang.system - Copyright (C) 1998, 2002, 2004 Free Software Foundation + Copyright (C) 1998, 2002, 2004, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -56,6 +56,9 @@ import java.io.PrintStream; */ final class VMSystem { + + private VMSystem() {} // Prohibits instantiation. + /** * Copy one array onto another from src[srcStart] ... * src[srcStart+len-1] to dest[destStart] ... @@ -94,15 +97,6 @@ final class VMSystem */ static native int identityHashCode(Object o); - /** - * Convert a library name to its platform-specific variant. - * - * @param libname the library name, as used in loadLibrary - * @return the platform-specific mangling of the name - * @XXX Add this method - static native String mapLibraryName(String libname); - */ - /** * Set {@link System#in} to a new InputStream. * @@ -135,10 +129,7 @@ final class VMSystem * @return the current time * @see java.util.Date */ - public static long currentTimeMillis() - { - return nanoTime() / 1000000L; - } + static native long currentTimeMillis(); /** *

    @@ -165,7 +156,7 @@ final class VMSystem * @return the time of a system timer in nanoseconds. * @since 1.5 */ - public static native long nanoTime(); + static native long nanoTime(); /** * Returns a list of 'name=value' pairs representing the current environment diff --git a/libjava/classpath/vm/reference/java/lang/management/VMManagementFactory.java b/libjava/classpath/vm/reference/java/lang/management/VMManagementFactory.java index f10497014b4..253311cdf2c 100644 --- a/libjava/classpath/vm/reference/java/lang/management/VMManagementFactory.java +++ b/libjava/classpath/vm/reference/java/lang/management/VMManagementFactory.java @@ -1,5 +1,5 @@ /* VMManagementFactory.java - VM interface for obtaining system beans. - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -48,6 +48,8 @@ package java.lang.management; final class VMManagementFactory { + private VMManagementFactory() {} // Prohibits instantiation. + /** * Return a list of the names of the currently available * memory pools within the virtual machine. diff --git a/libjava/classpath/vm/reference/java/lang/reflect/VMArray.java b/libjava/classpath/vm/reference/java/lang/reflect/VMArray.java index d6277aebdbd..2055c170eca 100644 --- a/libjava/classpath/vm/reference/java/lang/reflect/VMArray.java +++ b/libjava/classpath/vm/reference/java/lang/reflect/VMArray.java @@ -1,5 +1,6 @@ /* java.lang.reflect.VMArray - VM class for array manipulation by reflection. - Copyright (C) 1998, 1999, 2001, 2003, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2003, 2005, 2010 + Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,7 +41,7 @@ package java.lang.reflect; import gnu.classpath.Configuration; -class VMArray +final class VMArray { static @@ -51,6 +52,8 @@ class VMArray } } + private VMArray() {} // Prohibits instantiation. + /** * Dynamically create an array of objects. * diff --git a/libjava/classpath/vm/reference/java/lang/reflect/VMProxy.java b/libjava/classpath/vm/reference/java/lang/reflect/VMProxy.java index 8c7b67a7202..a9d6093ebab 100644 --- a/libjava/classpath/vm/reference/java/lang/reflect/VMProxy.java +++ b/libjava/classpath/vm/reference/java/lang/reflect/VMProxy.java @@ -1,5 +1,5 @@ /* VMProxy.java -- VM interface for proxy class - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -67,6 +67,8 @@ final class VMProxy */ static boolean HAVE_NATIVE_GENERATE_PROXY_CLASS = false; + private VMProxy() {} // Prohibits instantiation. + /** * Optional native method to replace (and speed up) the pure Java * implementation of getProxyClass. Only needed if diff --git a/libjava/classpath/vm/reference/java/net/VMInetAddress.java b/libjava/classpath/vm/reference/java/net/VMInetAddress.java index a99c216b96c..97ae09a743a 100644 --- a/libjava/classpath/vm/reference/java/net/VMInetAddress.java +++ b/libjava/classpath/vm/reference/java/net/VMInetAddress.java @@ -1,5 +1,5 @@ /* VMInetAddress.java -- Class to model an Internet address - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,16 +40,17 @@ package java.net; import gnu.classpath.Configuration; -import java.io.Serializable; - -class VMInetAddress implements Serializable +final class VMInetAddress { + static { if (Configuration.INIT_LOAD_LIBRARY) System.loadLibrary("javanet"); } + private VMInetAddress() {} // Prohibits instantiation. + /** * This method looks up the hostname of the local machine * we are on. If the actual hostname cannot be determined, then the @@ -58,12 +59,12 @@ class VMInetAddress implements Serializable * * @return The local hostname. */ - public static native String getLocalHostname(); + static native String getLocalHostname(); /** * Returns the value of the special address INADDR_ANY */ - public static native byte[] lookupInaddrAny() throws UnknownHostException; + static native byte[] lookupInaddrAny() throws UnknownHostException; /** * This method returns the hostname for a given IP address. It will @@ -75,14 +76,14 @@ class VMInetAddress implements Serializable * * @exception UnknownHostException If the reverse lookup fails */ - public static native String getHostByAddr(byte[] ip) + static native String getHostByAddr(byte[] ip) throws UnknownHostException; /** * Returns a list of all IP addresses for a given hostname. Will throw * an UnknownHostException if the hostname cannot be resolved. */ - public static native byte[][] getHostByName(String hostname) + static native byte[][] getHostByName(String hostname) throws UnknownHostException; /** @@ -93,5 +94,5 @@ class VMInetAddress implements Serializable * * @return The IP address as a byte array */ - public static native byte[] aton(String address); + static native byte[] aton(String address); } diff --git a/libjava/classpath/vm/reference/java/net/VMURLConnection.java b/libjava/classpath/vm/reference/java/net/VMURLConnection.java index 19bf5814e67..ae04bdb6a05 100644 --- a/libjava/classpath/vm/reference/java/net/VMURLConnection.java +++ b/libjava/classpath/vm/reference/java/net/VMURLConnection.java @@ -1,5 +1,5 @@ /* VMURLConnection - VM code for URLConnection - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,7 +45,8 @@ import java.io.InputStream; final class VMURLConnection { - public static final int LENGTH = 1024; + + static final int LENGTH = 1024; static { @@ -54,6 +55,8 @@ final class VMURLConnection init(); } + private VMURLConnection() {} // Prohibits instantiation. + private static native void init(); private static native String guessContentTypeFromBuffer(byte[] b, int valid); diff --git a/libjava/classpath/vm/reference/java/nio/VMDirectByteBuffer.java b/libjava/classpath/vm/reference/java/nio/VMDirectByteBuffer.java index 93a83883a0e..41d44d8eb44 100644 --- a/libjava/classpath/vm/reference/java/nio/VMDirectByteBuffer.java +++ b/libjava/classpath/vm/reference/java/nio/VMDirectByteBuffer.java @@ -1,5 +1,5 @@ /* VMDirectByteBuffer.java -- - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ import gnu.classpath.Pointer; final class VMDirectByteBuffer { + static { // load the shared library needed for native methods. @@ -52,12 +53,24 @@ final class VMDirectByteBuffer } } - static native Pointer allocate (int capacity); + private VMDirectByteBuffer() {} // Prohibits instantiation. + + static native Pointer allocate(int capacity); + static native void free(Pointer address); + static native byte get(Pointer address, int index); - static native void get(Pointer address, int index, byte[] dst, int offset, int length); + + static native void get(Pointer address, int index, byte[] dst, int offset, + int length); + static native void put(Pointer address, int index, byte value); - static native void put(Pointer address, int index, byte[] src, int offset, int length); + + static native void put(Pointer address, int index, byte[] src, int offset, + int length); + static native Pointer adjustAddress(Pointer address, int offset); - static native void shiftDown(Pointer address, int dst_offset, int src_offset, int count); + + static native void shiftDown(Pointer address, int dst_offset, + int src_offset, int count); } diff --git a/libjava/classpath/vm/reference/java/security/VMAccessController.java b/libjava/classpath/vm/reference/java/security/VMAccessController.java index 9299e6f84cc..6e02f571106 100644 --- a/libjava/classpath/vm/reference/java/security/VMAccessController.java +++ b/libjava/classpath/vm/reference/java/security/VMAccessController.java @@ -71,7 +71,7 @@ final class VMAccessController Permissions permissions = new Permissions(); permissions.add(new AllPermission()); ProtectionDomain[] domain = new ProtectionDomain[] { - new ProtectionDomain(source, permissions) + new ProtectionDomain(source, permissions, null, null) }; DEFAULT_CONTEXT = new AccessControlContext(domain); } @@ -188,12 +188,13 @@ final class VMAccessController { Class clazz = classes[i]; String method = methods[i]; + ClassLoader loader = clazz.getClassLoader(); if (DEBUG) { debug("checking " + clazz + "." + method); // subject to getClassLoader RuntimePermission - debug("loader = " + clazz.getClassLoader()); + debug("loader = " + loader); } // If the previous frame was a call to doPrivileged, then this is @@ -225,7 +226,8 @@ final class VMAccessController // Create a static snapshot of this domain, which may change over time // if the current policy changes. domains.add(new ProtectionDomain(domain.getCodeSource(), - domain.getPermissions())); + domain.getPermissions(), + loader, null)); } if (DEBUG) diff --git a/libjava/classpath/vm/reference/java/security/VMSecureRandom.java b/libjava/classpath/vm/reference/java/security/VMSecureRandom.java index bea15497762..0a438455778 100644 --- a/libjava/classpath/vm/reference/java/security/VMSecureRandom.java +++ b/libjava/classpath/vm/reference/java/security/VMSecureRandom.java @@ -1,5 +1,5 @@ /* VMSecureRandom.java -- random seed generator. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -55,6 +55,8 @@ package java.security; final class VMSecureRandom { + private VMSecureRandom() {} // Prohibits instantiation. + /** * Generate a random seed. Implementations are free to generate * fewer random bytes than are requested, and leave the remaining @@ -104,7 +106,8 @@ final class VMSecureRandom return length; } - static class Spinner implements Runnable + static class Spinner + implements Runnable { volatile byte value; volatile boolean running; @@ -121,7 +124,7 @@ final class VMSecureRandom value++; } - private void stop() + void stop() { running = false; } diff --git a/libjava/classpath/vm/reference/java/util/VMTimeZone.java b/libjava/classpath/vm/reference/java/util/VMTimeZone.java index 11061aa32bf..5724180d719 100644 --- a/libjava/classpath/vm/reference/java/util/VMTimeZone.java +++ b/libjava/classpath/vm/reference/java/util/VMTimeZone.java @@ -1,5 +1,5 @@ /* java.util.VMTimeZone - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -51,6 +51,7 @@ import java.io.*; */ final class VMTimeZone { + static { if (Configuration.INIT_LOAD_LIBRARY) @@ -59,6 +60,8 @@ final class VMTimeZone } } + private VMTimeZone() {} // Prohibits instantiation. + /** * This method returns a time zone id string which is in the form * (standard zone name) or (standard zone name)(GMT offset) or diff --git a/libjava/classpath/vm/reference/sun/misc/Unsafe.java b/libjava/classpath/vm/reference/sun/misc/Unsafe.java index e316bdb8da1..6fad6e4e3ea 100644 --- a/libjava/classpath/vm/reference/sun/misc/Unsafe.java +++ b/libjava/classpath/vm/reference/sun/misc/Unsafe.java @@ -1,5 +1,5 @@ /* Unsafe.java - Unsafe operations needed for concurrency - Copyright (C) 2006 Free Software Foundation + Copyright (C) 2006, 2010 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -48,10 +48,10 @@ import java.lang.reflect.Field; * @author Tom Tromey (tromey@redhat.com) * @author Andrew John Hughes (gnu_andrew@member.fsf.org) */ -public class Unsafe +public final class Unsafe { // Singleton class. - private static Unsafe unsafe = new Unsafe(); + private static final Unsafe unsafe = new Unsafe(); /** * Private default constructor to prevent creation of an arbitrary diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in index 44979381271..3951e358907 100644 --- a/libjava/gcj/Makefile.in +++ b/libjava/gcj/Makefile.in @@ -135,7 +135,6 @@ EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCC_FOR_ECJX = @GCC_FOR_ECJX@ -GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ GCDEPS = @GCDEPS@ GCINCS = @GCINCS@ GCJ = @GCJ@ @@ -183,6 +182,7 @@ LIBART_LIBS = @LIBART_LIBS@ LIBDIR = @LIBDIR@ LIBFFI = @LIBFFI@ LIBFFIINCS = @LIBFFIINCS@ +LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@ LIBGCJDEBUG = @LIBGCJDEBUG@ LIBGCJTESTSPEC = @LIBGCJTESTSPEC@ LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@ diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h index 3d4c3c947cb..19178ef878c 100644 --- a/libjava/gcj/javaprims.h +++ b/libjava/gcj/javaprims.h @@ -65,6 +65,7 @@ extern "Java" class CharArrayWriter; class CharConversionException; class Closeable; + class Console; class DataInput; class DataInputStream; class DataOutput; @@ -88,6 +89,7 @@ extern "Java" class FilterReader; class FilterWriter; class Flushable; + class IOError; class IOException; class InputStream; class InputStreamReader; @@ -108,6 +110,7 @@ extern "Java" class ObjectOutput; class ObjectOutputStream; class ObjectOutputStream$1; + class ObjectOutputStream$2; class ObjectOutputStream$PutField; class ObjectStreamClass; class ObjectStreamClass$1; @@ -142,6 +145,7 @@ extern "Java" class SyncFailedException; class UTFDataFormatException; class UnsupportedEncodingException; + class VMConsole; class VMObjectInputStream; class VMObjectStreamClass; class WriteAbortedException; diff --git a/libjava/gnu/classpath/Configuration.java b/libjava/gnu/classpath/Configuration.java index b0c57332ddc..f91d837b2b6 100644 --- a/libjava/gnu/classpath/Configuration.java +++ b/libjava/gnu/classpath/Configuration.java @@ -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.98"; + public static final String CLASSPATH_VERSION = "0.99"; /** * The value of DEBUG is substituted according to whether the diff --git a/libjava/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h b/libjava/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h index aaab2bf5167..512560dc6b4 100644 --- a/libjava/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h +++ b/libjava/gnu/javax/crypto/key/dh/GnuDHKeyPairGenerator.h @@ -17,10 +17,6 @@ extern "Java" { namespace security { - namespace hash - { - class Sha160; - } namespace util { class PRNG; @@ -77,8 +73,7 @@ public: static const jint DEFAULT_EXPONENT_SIZE = 160; private: static const jint DEFAULT_ENCODING_FORMAT = 1; - ::gnu::java::security::hash::Sha160 * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sha; - ::java::security::SecureRandom * rnd; + ::java::security::SecureRandom * __attribute__((aligned(__alignof__( ::java::lang::Object)))) rnd; jint l; jint m; ::java::math::BigInteger * seed; diff --git a/libjava/gnu/javax/net/ssl/provider/CipherSuite.h b/libjava/gnu/javax/net/ssl/provider/CipherSuite.h index 511b6de6596..a54ec5e5c44 100644 --- a/libjava/gnu/javax/net/ssl/provider/CipherSuite.h +++ b/libjava/gnu/javax/net/ssl/provider/CipherSuite.h @@ -52,8 +52,8 @@ extern "Java" class gnu::javax::net::ssl::provider::CipherSuite : public ::java::lang::Object { - CipherSuite(::gnu::javax::net::ssl::provider::CipherAlgorithm *, ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm *, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *, ::gnu::javax::net::ssl::provider::MacAlgorithm *, jint, jint, jint, ::java::lang::String *); - CipherSuite(::gnu::javax::net::ssl::provider::CipherAlgorithm *, ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm *, jboolean, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *, ::gnu::javax::net::ssl::provider::MacAlgorithm *, jint, jint, jint, ::java::lang::String *); + CipherSuite(::gnu::javax::net::ssl::provider::CipherAlgorithm *, ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm *, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *, ::gnu::javax::net::ssl::provider::MacAlgorithm *, jint, jint, jint, ::java::lang::String *, jboolean); + CipherSuite(::gnu::javax::net::ssl::provider::CipherAlgorithm *, ::gnu::javax::net::ssl::provider::KeyExchangeAlgorithm *, jboolean, ::gnu::javax::net::ssl::provider::SignatureAlgorithm *, ::gnu::javax::net::ssl::provider::MacAlgorithm *, jint, jint, jint, ::java::lang::String *, jboolean); CipherSuite(JArray< jbyte > *); public: static ::gnu::javax::net::ssl::provider::CipherSuite * forName(::java::lang::String *); @@ -79,6 +79,7 @@ public: jint hashCode(); ::java::lang::String * toString(::java::lang::String *); ::java::lang::String * toString(); + jboolean isCBCMode(); private: static ::java::util::List * tlsSuiteNames; static ::java::util::HashMap * namesToSuites; @@ -134,6 +135,7 @@ private: jboolean ephemeralDH; jboolean exportable; jboolean isStream; + jboolean isCBCMode__; jint keyLength__; JArray< jbyte > * id__; ::java::lang::String * name; diff --git a/libjava/gnu/javax/net/ssl/provider/OutputSecurityParameters.h b/libjava/gnu/javax/net/ssl/provider/OutputSecurityParameters.h index 7bb774beabf..cd28544ebe2 100644 --- a/libjava/gnu/javax/net/ssl/provider/OutputSecurityParameters.h +++ b/libjava/gnu/javax/net/ssl/provider/OutputSecurityParameters.h @@ -62,6 +62,7 @@ public: virtual JArray< jint > * encrypt(JArray< ::java::nio::ByteBuffer * > *, jint, jint, ::gnu::javax::net::ssl::provider::ContentType *, ::java::nio::ByteBuffer *); public: // actually package-private virtual ::gnu::javax::net::ssl::provider::CipherSuite * suite(); + virtual jboolean needToSplitPayload(); private: static ::gnu::classpath::debug::SystemLogger * logger; ::javax::crypto::Cipher * __attribute__((aligned(__alignof__( ::java::lang::Object)))) cipher; @@ -70,6 +71,8 @@ private: ::gnu::javax::net::ssl::provider::SessionImpl * session; ::gnu::javax::net::ssl::provider::CipherSuite * suite__; jlong sequence; +public: // actually package-private + static jboolean enableCBCProtection; public: static ::java::lang::Class class$; }; diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in index e6b043c378d..34f4ad03178 100644 --- a/libjava/include/Makefile.in +++ b/libjava/include/Makefile.in @@ -136,7 +136,6 @@ EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCC_FOR_ECJX = @GCC_FOR_ECJX@ -GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ GCDEPS = @GCDEPS@ GCINCS = @GCINCS@ GCJ = @GCJ@ @@ -184,6 +183,7 @@ LIBART_LIBS = @LIBART_LIBS@ LIBDIR = @LIBDIR@ LIBFFI = @LIBFFI@ LIBFFIINCS = @LIBFFIINCS@ +LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@ LIBGCJDEBUG = @LIBGCJDEBUG@ LIBGCJTESTSPEC = @LIBGCJTESTSPEC@ LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@ diff --git a/libjava/java/io/Console.h b/libjava/java/io/Console.h new file mode 100644 index 00000000000..65a30723395 --- /dev/null +++ b/libjava/java/io/Console.h @@ -0,0 +1,36 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_Console__ +#define __java_io_Console__ + +#pragma interface + +#include +#include + + +class java::io::Console : public ::java::lang::Object +{ + +public: + static ::java::io::Console * console(); +private: + Console(); +public: + ::java::io::PrintWriter * writer(); + ::java::io::Reader * reader(); + ::java::io::Console * format(::java::lang::String *, JArray< ::java::lang::Object * > *); + ::java::io::Console * printf(::java::lang::String *, JArray< ::java::lang::Object * > *); + ::java::lang::String * readLine(::java::lang::String *, JArray< ::java::lang::Object * > *); + ::java::lang::String * readLine(); + JArray< jchar > * readPassword(::java::lang::String *, JArray< ::java::lang::Object * > *); + JArray< jchar > * readPassword(); + void flush(); +private: + static ::java::io::Console * console__; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_io_Console__ diff --git a/libjava/java/io/IOError.h b/libjava/java/io/IOError.h new file mode 100644 index 00000000000..c93c95d0f71 --- /dev/null +++ b/libjava/java/io/IOError.h @@ -0,0 +1,22 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_IOError__ +#define __java_io_IOError__ + +#pragma interface + +#include + +class java::io::IOError : public ::java::lang::Error +{ + +public: + IOError(::java::lang::Throwable *); +private: + static const jlong serialVersionUID = 67100927991680413LL; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_io_IOError__ diff --git a/libjava/java/io/ObjectOutputStream$2.h b/libjava/java/io/ObjectOutputStream$2.h new file mode 100644 index 00000000000..1ddf1beff90 --- /dev/null +++ b/libjava/java/io/ObjectOutputStream$2.h @@ -0,0 +1,25 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_ObjectOutputStream$2__ +#define __java_io_ObjectOutputStream$2__ + +#pragma interface + +#include + +class java::io::ObjectOutputStream$2 : public ::java::lang::Object +{ + +public: // actually package-private + ObjectOutputStream$2(::java::lang::Class *); +public: + virtual ::java::lang::Boolean * ObjectOutputStream$2$run(); + virtual ::java::lang::Object * run(); +private: + ::java::lang::Class * __attribute__((aligned(__alignof__( ::java::lang::Object)))) val$clazz; +public: + static ::java::lang::Class class$; +}; + +#endif // __java_io_ObjectOutputStream$2__ diff --git a/libjava/java/io/ObjectOutputStream.h b/libjava/java/io/ObjectOutputStream.h index fe6f88f11a8..d38f1b28f17 100644 --- a/libjava/java/io/ObjectOutputStream.h +++ b/libjava/java/io/ObjectOutputStream.h @@ -95,6 +95,7 @@ private: void callWriteMethod(::java::lang::Object *, ::java::io::ObjectStreamClass *); void dumpElementln(::java::lang::String *, ::java::lang::Object *); void dumpElementln(::java::lang::String *); + static jboolean overridesMethods(::java::lang::Class *); static const jint BUFFER_SIZE = 1024; static jint defaultProtocolVersion; ::java::io::DataOutputStream * __attribute__((aligned(__alignof__( ::java::io::OutputStream)))) dataOutput; diff --git a/libjava/java/io/VMConsole.h b/libjava/java/io/VMConsole.h new file mode 100644 index 00000000000..a75a123d49b --- /dev/null +++ b/libjava/java/io/VMConsole.h @@ -0,0 +1,22 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_io_VMConsole__ +#define __java_io_VMConsole__ + +#pragma interface + +#include + +class java::io::VMConsole : public ::java::lang::Object +{ + +public: + VMConsole(); +public: // actually package-private + static ::java::lang::String * readPassword(::java::io::Console *); +public: + static ::java::lang::Class class$; +}; + +#endif // __java_io_VMConsole__ diff --git a/libjava/java/io/VMConsole.java b/libjava/java/io/VMConsole.java new file mode 100644 index 00000000000..69c9df9527f --- /dev/null +++ b/libjava/java/io/VMConsole.java @@ -0,0 +1,44 @@ +/* VMConsole.java -- helper for java.io.Console + Copyright (C) 2012 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.io; + +public final class VMConsole +{ + static native String readPassword(Console con); +} diff --git a/libjava/java/io/natVMConsole.cc b/libjava/java/io/natVMConsole.cc new file mode 100644 index 00000000000..7bdc2cf681d --- /dev/null +++ b/libjava/java/io/natVMConsole.cc @@ -0,0 +1,45 @@ +// natVMConsole.cc - Native part of VMConsole class. + +/* Copyright (C) 2012 + 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 ObjectInputStream "LIBGCJ_LICENSE" for +details. */ + +#include + +#include +#include + +#include + +#include +#include + +#define TERMIOS_ECHO_IFLAGS (IUCLC|IXON|IXOFF|IXANY) +#define TERMIOS_ECHO_LFLAGS (ECHO|ECHOE|ECHOK|ECHONL|TOSTOP) + +jstring +java::io::VMConsole::readPassword(::java::io::Console *con) +{ + struct termios oldt, newt; + jstring result; + + tcgetattr (STDIN_FILENO, &oldt); + + tcgetattr (STDIN_FILENO, &newt); + + newt.c_iflag &= ~TERMIOS_ECHO_IFLAGS; + newt.c_lflag &= ~TERMIOS_ECHO_LFLAGS; + + tcsetattr (STDIN_FILENO, TCSANOW, &newt); + + result = con->readLine (); + + tcsetattr (STDIN_FILENO, TCSANOW, &oldt); + + return result; +} diff --git a/libjava/java/nio/channels/spi/SelectorProvider$1.h b/libjava/java/nio/channels/spi/SelectorProvider$1.h new file mode 100644 index 00000000000..9d8dec2a210 --- /dev/null +++ b/libjava/java/nio/channels/spi/SelectorProvider$1.h @@ -0,0 +1,38 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_nio_channels_spi_SelectorProvider$1__ +#define __java_nio_channels_spi_SelectorProvider$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace nio + { + namespace channels + { + namespace spi + { + class SelectorProvider$1; + } + } + } + } +} + +class java::nio::channels::spi::SelectorProvider$1 : public ::java::lang::Object +{ + +public: // actually package-private + SelectorProvider$1(); +public: + virtual ::java::lang::String * SelectorProvider$1$run(); + virtual ::java::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __java_nio_channels_spi_SelectorProvider$1__ diff --git a/libjava/java/security/KeyStore$1.h b/libjava/java/security/KeyStore$1.h new file mode 100644 index 00000000000..335569c08b8 --- /dev/null +++ b/libjava/java/security/KeyStore$1.h @@ -0,0 +1,32 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __java_security_KeyStore$1__ +#define __java_security_KeyStore$1__ + +#pragma interface + +#include +extern "Java" +{ + namespace java + { + namespace security + { + class KeyStore$1; + } + } +} + +class java::security::KeyStore$1 : public ::java::lang::Object +{ + +public: // actually package-private + KeyStore$1(); +public: + virtual ::java::lang::String * KeyStore$1$run(); + virtual ::java::lang::Object * run(); + static ::java::lang::Class class$; +}; + +#endif // __java_security_KeyStore$1__ diff --git a/libjava/java/security/ProtectionDomain.h b/libjava/java/security/ProtectionDomain.h index 7f204667a85..bb2430be166 100644 --- a/libjava/java/security/ProtectionDomain.h +++ b/libjava/java/security/ProtectionDomain.h @@ -45,6 +45,7 @@ private: ::java::lang::ClassLoader * classloader; JArray< ::java::security::Principal * > * principals; jboolean staticBinding; + jboolean hasAllPermissions; public: static ::java::lang::Class class$; }; diff --git a/libjava/java/text/DateFormatSymbols.h b/libjava/java/text/DateFormatSymbols.h index b5cce7f5dd8..524fab106e1 100644 --- a/libjava/java/text/DateFormatSymbols.h +++ b/libjava/java/text/DateFormatSymbols.h @@ -23,7 +23,8 @@ extern "Java" class java::text::DateFormatSymbols : public ::java::lang::Object { - static JArray< ::java::lang::String * > * getStringArray(::java::util::ResourceBundle *, ::java::lang::String *); + static JArray< ::java::lang::String * > * getStringArray(::java::util::List *, ::java::lang::String *, jint); + static JArray< ::java::lang::String * > * getStringArray(::java::util::List *, ::java::lang::String *, jint, JArray< ::java::lang::String * > *); JArray< JArray< ::java::lang::String * > * > * getZoneStrings(::java::util::ResourceBundle *, ::java::util::Locale *); JArray< ::java::lang::String * > * formatsForKey(::java::util::ResourceBundle *, ::java::lang::String *); public: diff --git a/libjava/java/util/HashMap.h b/libjava/java/util/HashMap.h index 5b8c77f105e..8cd751812c1 100644 --- a/libjava/java/util/HashMap.h +++ b/libjava/java/util/HashMap.h @@ -42,7 +42,7 @@ private: void writeObject(::java::io::ObjectOutputStream *); void readObject(::java::io::ObjectInputStream *); public: // actually package-private - static const jint DEFAULT_CAPACITY = 11; + static const jint DEFAULT_CAPACITY = 16; static jfloat DEFAULT_LOAD_FACTOR; private: static const jlong serialVersionUID = 362498820763181265LL; diff --git a/libjava/java/util/regex/Matcher.h b/libjava/java/util/regex/Matcher.h index 74230ef51b7..bb59f883dae 100644 --- a/libjava/java/util/regex/Matcher.h +++ b/libjava/java/util/regex/Matcher.h @@ -62,6 +62,7 @@ public: jboolean hasAnchoringBounds(); ::java::util::regex::Matcher * useAnchoringBounds(jboolean); ::java::util::regex::MatchResult * toMatchResult(); + static ::java::lang::String * quoteReplacement(::java::lang::String *); private: ::java::util::regex::Pattern * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pattern__; ::java::lang::CharSequence * input; diff --git a/libjava/java/util/regex/Pattern.h b/libjava/java/util/regex/Pattern.h index 267cafdc041..5536aec82c1 100644 --- a/libjava/java/util/regex/Pattern.h +++ b/libjava/java/util/regex/Pattern.h @@ -41,6 +41,7 @@ public: JArray< ::java::lang::String * > * split(::java::lang::CharSequence *); JArray< ::java::lang::String * > * split(::java::lang::CharSequence *, jint); ::java::lang::String * pattern(); + static ::java::lang::String * quote(::java::lang::String *); ::java::lang::String * toString(); private: static const jlong serialVersionUID = 5073258162644648461LL; diff --git a/libjava/javax/xml/stream/util/ReaderDelegate.h b/libjava/javax/xml/stream/util/ReaderDelegate.h deleted file mode 100644 index 0a887d1ee9a..00000000000 --- a/libjava/javax/xml/stream/util/ReaderDelegate.h +++ /dev/null @@ -1,95 +0,0 @@ - -// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- - -#ifndef __javax_xml_stream_util_ReaderDelegate__ -#define __javax_xml_stream_util_ReaderDelegate__ - -#pragma interface - -#include -#include - -extern "Java" -{ - namespace javax - { - namespace xml - { - namespace namespace$ - { - class NamespaceContext; - class QName; - } - namespace stream - { - class Location; - class XMLStreamReader; - namespace util - { - class ReaderDelegate; - } - } - } - } -} - -class javax::xml::stream::util::ReaderDelegate : public ::java::lang::Object -{ - -public: - ReaderDelegate(); - ReaderDelegate(::javax::xml::stream::XMLStreamReader *); - virtual void setParent(::javax::xml::stream::XMLStreamReader *); - virtual ::javax::xml::stream::XMLStreamReader * getParent(); - virtual jint next(); - virtual jint nextTag(); - virtual ::java::lang::String * getElementText(); - virtual void require(jint, ::java::lang::String *, ::java::lang::String *); - virtual jboolean hasNext(); - virtual void close(); - virtual ::java::lang::String * getNamespaceURI(::java::lang::String *); - virtual ::javax::xml::namespace$::NamespaceContext * getNamespaceContext(); - virtual jboolean isStartElement(); - virtual jboolean isEndElement(); - virtual jboolean isCharacters(); - virtual jboolean isWhiteSpace(); - virtual ::java::lang::String * getAttributeValue(::java::lang::String *, ::java::lang::String *); - virtual jint getAttributeCount(); - virtual ::javax::xml::namespace$::QName * getAttributeName(jint); - virtual ::java::lang::String * getAttributePrefix(jint); - virtual ::java::lang::String * getAttributeNamespace(jint); - virtual ::java::lang::String * getAttributeLocalName(jint); - virtual ::java::lang::String * getAttributeType(jint); - virtual ::java::lang::String * getAttributeValue(jint); - virtual jboolean isAttributeSpecified(jint); - virtual jint getNamespaceCount(); - virtual ::java::lang::String * getNamespacePrefix(jint); - virtual ::java::lang::String * getNamespaceURI(jint); - virtual jint getEventType(); - virtual ::java::lang::String * getText(); - virtual jint getTextCharacters(jint, JArray< jchar > *, jint, jint); - virtual JArray< jchar > * getTextCharacters(); - virtual jint getTextStart(); - virtual jint getTextLength(); - virtual ::java::lang::String * getEncoding(); - virtual jboolean hasText(); - virtual ::javax::xml::stream::Location * getLocation(); - virtual ::javax::xml::namespace$::QName * getName(); - virtual ::java::lang::String * getLocalName(); - virtual jboolean hasName(); - virtual ::java::lang::String * getNamespaceURI(); - virtual ::java::lang::String * getPrefix(); - virtual ::java::lang::String * getVersion(); - virtual jboolean isStandalone(); - virtual jboolean standaloneSet(); - virtual ::java::lang::String * getCharacterEncodingScheme(); - virtual ::java::lang::String * getPITarget(); - virtual ::java::lang::String * getPIData(); - virtual ::java::lang::Object * getProperty(::java::lang::String *); -private: - ::javax::xml::stream::XMLStreamReader * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent; -public: - static ::java::lang::Class class$; -}; - -#endif // __javax_xml_stream_util_ReaderDelegate__ diff --git a/libjava/sources.am b/libjava/sources.am index 4539abd4601..150b42b3c47 100644 --- a/libjava/sources.am +++ b/libjava/sources.am @@ -4535,6 +4535,7 @@ classpath/java/io/CharArrayReader.java \ classpath/java/io/CharArrayWriter.java \ classpath/java/io/CharConversionException.java \ classpath/java/io/Closeable.java \ +classpath/java/io/Console.java \ classpath/java/io/DataInput.java \ classpath/java/io/DataInputStream.java \ classpath/java/io/DataOutput.java \ @@ -4557,6 +4558,7 @@ classpath/java/io/FilterOutputStream.java \ classpath/java/io/FilterReader.java \ classpath/java/io/FilterWriter.java \ classpath/java/io/Flushable.java \ +classpath/java/io/IOError.java \ classpath/java/io/IOException.java \ classpath/java/io/InputStream.java \ java/io/InputStreamReader.java \ @@ -4600,6 +4602,7 @@ classpath/java/io/StringWriter.java \ classpath/java/io/SyncFailedException.java \ classpath/java/io/UTFDataFormatException.java \ classpath/java/io/UnsupportedEncodingException.java \ +java/io/VMConsole.java \ java/io/VMObjectInputStream.java \ java/io/VMObjectStreamClass.java \ classpath/java/io/WriteAbortedException.java \ @@ -9507,8 +9510,8 @@ property_files = \ 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/print/MessagesBundle.properties \ + classpath/resource/gnu/javax/print/MessagesBundle_de.properties \ classpath/resource/gnu/javax/security/auth/callback/MessagesBundle.properties \ classpath/resource/java/text/metazones.properties \ classpath/resource/java/util/iso4217.properties \ diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in index a3ac9d81f4a..28c4630cf44 100644 --- a/libjava/testsuite/Makefile.in +++ b/libjava/testsuite/Makefile.in @@ -111,7 +111,6 @@ EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCC_FOR_ECJX = @GCC_FOR_ECJX@ -GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ GCDEPS = @GCDEPS@ GCINCS = @GCINCS@ GCJ = @GCJ@ @@ -159,6 +158,7 @@ LIBART_LIBS = @LIBART_LIBS@ LIBDIR = @LIBDIR@ LIBFFI = @LIBFFI@ LIBFFIINCS = @LIBFFIINCS@ +LIBGCC_UNWIND_INCLUDE = @LIBGCC_UNWIND_INCLUDE@ LIBGCJDEBUG = @LIBGCJDEBUG@ LIBGCJTESTSPEC = @LIBGCJTESTSPEC@ LIBGCJ_BC_SPEC = @LIBGCJ_BC_SPEC@ -- 2.30.2