changeset 49261:c569dfd90325

Merge
author prr
date Thu, 08 Feb 2018 22:34:20 -0800
parents 977219d0ee00 eb5572d58bb1
children 673be6f60323
files make/devkit/createMacosxDevkit.sh src/java.xml/share/legal/xmlresolver.md
diffstat 158 files changed, 2784 insertions(+), 2181 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Thu Feb 08 14:58:40 2018 +0530
+++ b/.hgtags	Thu Feb 08 22:34:20 2018 -0800
@@ -467,3 +467,5 @@
 5b834ec962366e00d4445352a999a3ac14e26f64 jdk-10+39
 860326263d1f6a83996d7da0f4c66806ae4aa1eb jdk-10+40
 3eae36c6baa5f916a3024cf1513e22357e00185d jdk-10+41
+4b62b815b4f49970b91a952929cf50115c263cb3 jdk-10+42
+107413b070b92c88bde6230ceb4a19b579781068 jdk-10+43
--- a/make/Docs.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/Docs.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -1,4 +1,4 @@
-# Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -200,7 +200,7 @@
 #
 define setup_gengraph_dot_to_png
   $1_$2_DOT_SRC :=  $$($1_GENGRAPHS_DIR)/$2.dot
-  $1_$2_PNG_TARGET := $$($1_TARGET_DIR)/$2-graph.png
+  $1_$2_PNG_TARGET := $$($1_TARGET_DIR)/$2/module-graph.png
 
     # For each module needing a graph, create a png file from the dot file
     # generated by the GenGraphs tool and store it in the target dir.
--- a/make/autoconf/configure	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/autoconf/configure	Thu Feb 08 22:34:20 2018 -0800
@@ -129,25 +129,18 @@
 }
 
 test_generated_up_to_date() {
-  if test "x`which hg 2> /dev/null | grep -v '^no hg in'`" != x; then
-    conf_updated_autoconf_files=`cd $conf_script_dir && hg status -mard . 2> /dev/null`
-    conf_source_files="$conf_script_dir/configure.ac $conf_script_dir/*.m4"
-    if test "x$CUSTOM_CONFIG_DIR" != x; then
-      conf_custom_updated_autoconf_files=`cd $CUSTOM_CONFIG_DIR && hg status -mard . 2> /dev/null`
-      conf_custom_source_files="$CUSTOM_CONFIG_DIR/*.m4"
-    else
-      conf_custom_updated_autoconf_files=""
-      conf_custom_source_files=""
+  conf_source_files="$conf_script_dir/configure.ac $conf_script_dir/*.m4"
+  if test "x$CUSTOM_CONFIG_DIR" != x; then
+    conf_custom_source_files="$CUSTOM_CONFIG_DIR/*.m4"
+  else
+    conf_custom_source_files=""
+  fi
+
+  for file in $conf_source_files $conf_custom_source_files ; do
+    if test $file -nt $generated_script; then
+      return 0
     fi
-
-    if test "x${conf_updated_autoconf_files}${conf_custom_updated_autoconf_files}" != x; then
-      for file in $conf_source_files $conf_custom_source_files ; do
-        if test $file -nt $generated_script; then
-          return 0
-        fi
-      done
-    fi
-  fi
+  done
   return 1
 }
 
--- a/make/autoconf/flags.m4	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/autoconf/flags.m4	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -918,7 +918,6 @@
         -MD -Zc:wchar_t- -W3 -wd4800 \
         -DWIN32_LEAN_AND_MEAN \
         -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
-        -D_WINSOCK_DEPRECATED_NO_WARNINGS \
         -DWIN32 -DIAL"
     if test "x$OPENJDK_$1_CPU" = xx86_64; then
       $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64"
@@ -1113,10 +1112,11 @@
 
   # Additional macosx handling
   if test "x$OPENJDK_$1_OS" = xmacosx; then
-    # MACOSX_VERSION_MIN is the c++ and ld is -mmacosx-version-min argument. The expected
-    # format is X.Y.Z. It's hard-coded to the minimum OSX version on which the
-    # JDK can be built and makes the linked binaries compatible even if built on
-    # a newer version of the OS.
+    # MACOSX_VERSION_MIN specifies the lowest version of Macosx that the built
+    # binaries should be compatible with, even if compiled on a newer version
+    # of the OS. It currently has a hard coded value. Setting this also limits
+    # exposure to API changes in header files. Bumping this is likely to
+    # require code changes to build.
     MACOSX_VERSION_MIN=10.7.0
     AC_SUBST(MACOSX_VERSION_MIN)
 
@@ -1150,6 +1150,7 @@
     $2JVM_CFLAGS="[$]$2JVM_CFLAGS \
         -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(subst .,,\$(MACOSX_VERSION_MIN)) \
         -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
+    $2ARFLAGS="$2$ARFLAGS -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
 
     if test -n "$MACOSX_VERSION_MAX"; then
         $2COMMON_CCXXFLAGS_JDK="[$]$2COMMON_CCXXFLAGS_JDK \
--- a/make/autoconf/lib-bundled.m4	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/autoconf/lib-bundled.m4	Thu Feb 08 22:34:20 2018 -0800
@@ -209,7 +209,17 @@
     AC_MSG_ERROR([Invalid value for --with-zlib: ${with_zlib}, use 'system' or 'bundled'])
   fi
 
+  LIBZ_CFLAGS=""
+  LIBZ_LIBS=""
+  if test "x$USE_EXTERNAL_LIBZ" = "xfalse"; then
+    LIBZ_CFLAGS="$LIBZ_CFLAGS -I$TOPDIR/src/java.base/share/native/libzip/zlib"
+  else
+    LIBZ_LIBS="-lz"
+  fi
+
   AC_SUBST(USE_EXTERNAL_LIBZ)
+  AC_SUBST(LIBZ_CFLAGS)
+  AC_SUBST(LIBZ_LIBS)
 ])
 
 ################################################################################
--- a/make/autoconf/spec.gmk.in	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/autoconf/spec.gmk.in	Thu Feb 08 22:34:20 2018 -0800
@@ -737,6 +737,8 @@
 USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
 USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
 USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
+LIBZ_CFLAGS:=@LIBZ_CFLAGS@
+LIBZ_LIBS:=@LIBZ_LIBS@
 LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
 MSVCR_DLL:=@MSVCR_DLL@
 MSVCP_DLL:=@MSVCP_DLL@
--- a/make/autoconf/version-numbers	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/autoconf/version-numbers	Thu Feb 08 22:34:20 2018 -0800
@@ -25,7 +25,7 @@
 
 # Default version numbers to use unless overridden by configure
 
-DEFAULT_VERSION_FEATURE=10
+DEFAULT_VERSION_FEATURE=11
 DEFAULT_VERSION_INTERIM=0
 DEFAULT_VERSION_UPDATE=0
 DEFAULT_VERSION_PATCH=0
--- a/make/conf/jib-profiles.js	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/conf/jib-profiles.js	Thu Feb 08 22:34:20 2018 -0800
@@ -1089,7 +1089,8 @@
     if (input.build_type == "promoted") {
         args = concat(args,
                       // This needs to be changed when we start building release candidates
-                      "--with-version-pre=ea",
+                      // with-version-pre must be set to ea for 'ea' and empty for fcs build
+                      "--with-version-pre=",
                       "--without-version-opt");
     } else {
         args = concat(args, "--with-version-opt=" + common.build_id);
--- a/make/devkit/createMacosxDevkit.sh	Thu Feb 08 14:58:40 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-#!/bin/bash
-#
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the LICENSE file that accompanied this code.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# This script copies part of an Xcode installer into a devkit suitable
-# for building OpenJDK and OracleJDK. The installation .dmg files for Xcode
-# and the aux tools need to be available.
-# erik.joelsson@oracle.com
-
-USAGE="$0 <Xcode.dmg> <XQuartz.dmg> <gnu make binary> [<auxtools.dmg>]"
-
-if [ "$1" = "" ] || [ "$2" = "" ]; then
-    echo $USAGE
-    exit 1
-fi
-
-XCODE_DMG="$1"
-XQUARTZ_DMG="$2"
-GNU_MAKE="$3"
-AUXTOOLS_DMG="$4"
-
-SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
-BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
-
-# Mount XCODE_DMG
-if [ -e "/Volumes/Xcode" ]; then
-    hdiutil detach /Volumes/Xcode
-fi
-hdiutil attach $XCODE_DMG
-
-# Find the version of Xcode
-XCODE_VERSION="$(/Volumes/Xcode/Xcode.app/Contents/Developer/usr/bin/xcodebuild -version \
-    | awk '/Xcode/ { print $2 }' )"
-SDK_VERSION="MacOSX10.9"
-if [ ! -e "/Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/${SDK_VERSION}.sdk" ]; then
-    echo "Expected SDK version not found: ${SDK_VERSION}"
-    exit 1
-fi
-
-DEVKIT_ROOT="${BUILD_DIR}/Xcode${XCODE_VERSION}-${SDK_VERSION}"
-DEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz"
-
-echo "Xcode version: $XCODE_VERSION"
-echo "Creating devkit in $DEVKIT_ROOT"
-
-################################################################################
-# Copy files to root
-mkdir -p $DEVKIT_ROOT
-if [ ! -d $DEVKIT_ROOT/Xcode.app ]; then
-    echo "Copying Xcode.app..."
-    cp -RH "/Volumes/Xcode/Xcode.app" $DEVKIT_ROOT/
-fi
-# Trim out some seemingly unneeded parts to save space.
-rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Applications
-rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/iPhone*
-rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Documentation
-rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/usr/share/man
-( cd $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs \
-    && rm -rf `ls | grep -v ${SDK_VERSION}` )
-rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/${SDK_VERSION}.sdk/usr/share/man
-
-hdiutil detach /Volumes/Xcode
-
-################################################################################
-# Copy Freetype into sysroot
-if [ -e "/Volumes/XQuartz-*" ]; then
-    hdiutil detach /Volumes/XQuartz-*
-fi
-hdiutil attach $XQUARTZ_DMG
-
-echo "Copying freetype..."
-rm -rf /tmp/XQuartz
-pkgutil --expand /Volumes/XQuartz-*/XQuartz.pkg /tmp/XQuartz/
-rm -rf /tmp/x11
-mkdir /tmp/x11
-cd /tmp/x11
-cat /tmp/XQuartz/x11.pkg/Payload | gunzip -dc | cpio -i
-
-mkdir -p $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
-mkdir -p $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/lib/
-cp -RH opt/X11/include/freetype2 \
-    $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
-cp -RH opt/X11/include/ft2build.h \
-    $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
-cp -RH opt/X11/lib/libfreetype.* \
-    $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/lib/
-
-cd -
-
-hdiutil detach /Volumes/XQuartz-*
-
-################################################################################
-# Copy gnu make
-mkdir -p $DEVKIT_ROOT/bin
-cp $GNU_MAKE $DEVKIT_ROOT/bin
-
-################################################################################
-# Optionally copy PackageMaker
-
-if [ -e "$AUXTOOLS_DMG" ]; then
-    if [ -e "/Volumes/Auxiliary Tools" ]; then
-        hdiutil detach "/Volumes/Auxiliary Tools"
-    fi
-    hdiutil attach $AUXTOOLS_DMG
-
-    echo "Copying PackageMaker.app..."
-    cp -RH "/Volumes/Auxiliary Tools/PackageMaker.app" $DEVKIT_ROOT/
-
-    hdiutil detach "/Volumes/Auxiliary Tools"
-fi
-
-################################################################################
-# Generate devkit.info
-
-echo-info() {
-    echo "$1" >> $DEVKIT_ROOT/devkit.info
-}
-
-echo "Generating devkit.info..."
-rm -f $DEVKIT_ROOT/devkit.info
-echo-info "# This file describes to configure how to interpret the contents of this devkit"
-echo-info "# The parameters used to create this devkit were:"
-echo-info "# $*"
-echo-info "DEVKIT_NAME=\"Xcode $XCODE_VERSION (devkit)\""
-echo-info "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:\$DEVKIT_ROOT/Xcode.app/Contents/Developer/usr/bin\""
-echo-info "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk\""
-echo-info "DEVKIT_EXTRA_PATH=\"\$DEVKIT_ROOT/bin:\$DEVKIT_ROOT/PackageMaker.app/Contents/MacOS:\$DEVKIT_TOOLCHAIN_PATH\""
-
-################################################################################
-# Copy this script
-
-echo "Copying this script..."
-cp $0 $DEVKIT_ROOT/
-
-################################################################################
-# Create bundle
-
-echo "Creating bundle..."
-(cd $DEVKIT_ROOT && tar c - . | gzip - > "$DEVKIT_BUNDLE")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/devkit/createMacosxDevkit6.sh	Thu Feb 08 22:34:20 2018 -0800
@@ -0,0 +1,161 @@
+#!/bin/bash
+#
+# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# This script copies part of an Xcode installer into a devkit suitable
+# for building OpenJDK and OracleJDK. The installation .dmg files for Xcode
+# and the aux tools need to be available.
+# erik.joelsson@oracle.com
+
+USAGE="$0 <Xcode.dmg> <XQuartz.dmg> <gnu make binary> [<auxtools.dmg>]"
+
+if [ "$1" = "" ] || [ "$2" = "" ]; then
+    echo $USAGE
+    exit 1
+fi
+
+XCODE_DMG="$1"
+XQUARTZ_DMG="$2"
+GNU_MAKE="$3"
+AUXTOOLS_DMG="$4"
+
+SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
+BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
+
+# Mount XCODE_DMG
+if [ -e "/Volumes/Xcode" ]; then
+    hdiutil detach /Volumes/Xcode
+fi
+hdiutil attach $XCODE_DMG
+
+# Find the version of Xcode
+XCODE_VERSION="$(/Volumes/Xcode/Xcode.app/Contents/Developer/usr/bin/xcodebuild -version \
+    | awk '/Xcode/ { print $2 }' )"
+SDK_VERSION="MacOSX10.9"
+if [ ! -e "/Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/${SDK_VERSION}.sdk" ]; then
+    echo "Expected SDK version not found: ${SDK_VERSION}"
+    exit 1
+fi
+
+DEVKIT_ROOT="${BUILD_DIR}/Xcode${XCODE_VERSION}-${SDK_VERSION}"
+DEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz"
+
+echo "Xcode version: $XCODE_VERSION"
+echo "Creating devkit in $DEVKIT_ROOT"
+
+################################################################################
+# Copy files to root
+mkdir -p $DEVKIT_ROOT
+if [ ! -d $DEVKIT_ROOT/Xcode.app ]; then
+    echo "Copying Xcode.app..."
+    cp -RH "/Volumes/Xcode/Xcode.app" $DEVKIT_ROOT/
+fi
+# Trim out some seemingly unneeded parts to save space.
+rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Applications
+rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/iPhone*
+rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Documentation
+rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/usr/share/man
+( cd $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs \
+    && rm -rf `ls | grep -v ${SDK_VERSION}` )
+rm -rf $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/${SDK_VERSION}.sdk/usr/share/man
+
+hdiutil detach /Volumes/Xcode
+
+################################################################################
+# Copy Freetype into sysroot
+if [ -e "/Volumes/XQuartz-*" ]; then
+    hdiutil detach /Volumes/XQuartz-*
+fi
+hdiutil attach $XQUARTZ_DMG
+
+echo "Copying freetype..."
+rm -rf /tmp/XQuartz
+pkgutil --expand /Volumes/XQuartz-*/XQuartz.pkg /tmp/XQuartz/
+rm -rf /tmp/x11
+mkdir /tmp/x11
+cd /tmp/x11
+cat /tmp/XQuartz/x11.pkg/Payload | gunzip -dc | cpio -i
+
+mkdir -p $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
+mkdir -p $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/lib/
+cp -RH opt/X11/include/freetype2 \
+    $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
+cp -RH opt/X11/include/ft2build.h \
+    $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/include/
+cp -RH opt/X11/lib/libfreetype.* \
+    $DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/X11/lib/
+
+cd -
+
+hdiutil detach /Volumes/XQuartz-*
+
+################################################################################
+# Copy gnu make
+mkdir -p $DEVKIT_ROOT/bin
+cp $GNU_MAKE $DEVKIT_ROOT/bin
+
+################################################################################
+# Optionally copy PackageMaker
+
+if [ -e "$AUXTOOLS_DMG" ]; then
+    if [ -e "/Volumes/Auxiliary Tools" ]; then
+        hdiutil detach "/Volumes/Auxiliary Tools"
+    fi
+    hdiutil attach $AUXTOOLS_DMG
+
+    echo "Copying PackageMaker.app..."
+    cp -RH "/Volumes/Auxiliary Tools/PackageMaker.app" $DEVKIT_ROOT/
+
+    hdiutil detach "/Volumes/Auxiliary Tools"
+fi
+
+################################################################################
+# Generate devkit.info
+
+echo-info() {
+    echo "$1" >> $DEVKIT_ROOT/devkit.info
+}
+
+echo "Generating devkit.info..."
+rm -f $DEVKIT_ROOT/devkit.info
+echo-info "# This file describes to configure how to interpret the contents of this devkit"
+echo-info "# The parameters used to create this devkit were:"
+echo-info "# $*"
+echo-info "DEVKIT_NAME=\"Xcode $XCODE_VERSION (devkit)\""
+echo-info "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:\$DEVKIT_ROOT/Xcode.app/Contents/Developer/usr/bin\""
+echo-info "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk\""
+echo-info "DEVKIT_EXTRA_PATH=\"\$DEVKIT_ROOT/bin:\$DEVKIT_ROOT/PackageMaker.app/Contents/MacOS:\$DEVKIT_TOOLCHAIN_PATH\""
+
+################################################################################
+# Copy this script
+
+echo "Copying this script..."
+cp $0 $DEVKIT_ROOT/
+
+################################################################################
+# Create bundle
+
+echo "Creating bundle..."
+(cd $DEVKIT_ROOT && tar c - . | gzip - > "$DEVKIT_BUNDLE")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make/devkit/createMacosxDevkit9.sh	Thu Feb 08 22:34:20 2018 -0800
@@ -0,0 +1,146 @@
+#!/bin/bash
+#
+# Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# This script copies parts of an Xcode installation into a devkit suitable
+# for building OpenJDK and OracleJDK. The installation Xcode_X.X.xip needs
+# to be either installed or extracted using for example Archive Utility.
+# The easiest way to accomplish this is to right click the file in Finder
+# and choose "Open With -> Archive Utility", or possible typing
+# "open Xcode_9.2.xip" in a terminal.
+# erik.joelsson@oracle.com
+
+USAGE="$0 <Xcode.app>"
+
+if [ "$1" = "" ]; then
+    echo $USAGE
+    exit 1
+fi
+
+XCODE_APP="$1"
+XCODE_APP_DIR_NAME="${XCODE_APP##*/}"
+
+SCRIPT_DIR="$(cd "$(dirname $0)" > /dev/null && pwd)"
+BUILD_DIR="${SCRIPT_DIR}/../../build/devkit"
+
+# Find the version of Xcode
+XCODE_VERSION="$($XCODE_APP/Contents/Developer/usr/bin/xcodebuild -version \
+    | awk '/Xcode/ { print $2 }' )"
+SDK_VERSION="MacOSX10.13"
+if [ ! -e "$XCODE_APP/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/${SDK_VERSION}.sdk" ]; then
+    echo "Expected SDK version not found: ${SDK_VERSION}"
+    exit 1
+fi
+
+DEVKIT_ROOT="${BUILD_DIR}/Xcode${XCODE_VERSION}-${SDK_VERSION}"
+DEVKIT_BUNDLE="${DEVKIT_ROOT}.tar.gz"
+
+echo "Xcode version: $XCODE_VERSION"
+echo "Creating devkit in $DEVKIT_ROOT"
+
+mkdir -p $DEVKIT_ROOT
+
+################################################################################
+# Copy the relevant parts of Xcode.app, removing things that are both big and
+# unecessary for our purposes, without building an impossibly long exclude list.
+#
+# Not including WatchSimulator.platform makes ibtool crashes in some situations.
+# It doesn't seem to matter which extra platform is included, but that is the
+# smallest one.
+
+EXCLUDE_DIRS=" \
+    Contents/_CodeSignature \
+    $XCODE_APP_DIR_NAME/Contents/Applications \
+    $XCODE_APP_DIR_NAME/Contents/Resources \
+    $XCODE_APP_DIR_NAME/Contents/Library \
+    $XCODE_APP_DIR_NAME/Contents/XPCServices \
+    $XCODE_APP_DIR_NAME/Contents/OtherFrameworks \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Documentation \
+    $XCODE_APP_DIR_NAME/Contents/Developer/usr/share \
+    $XCODE_APP_DIR_NAME/Contents/Developer/usr/libexec/git-core \
+    $XCODE_APP_DIR_NAME/Contents/Developer/usr/bin/git* \
+    $XCODE_APP_DIR_NAME/Contents/Developer/usr/bin/svn* \
+    $XCODE_APP_DIR_NAME/Contents/Developer/usr/lib/libgit* \
+    $XCODE_APP_DIR_NAME/Contents/Developer/usr/lib/libsvn* \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/share/man \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/${SDK_VERSION}.sdk/usr/share/man \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/share/man \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Platforms/MacOSX.platform/usr \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift* \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift* \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/sourcekitd.framework \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec/swift* \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/swift* \
+    $XCODE_APP_DIR_NAME/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/arc \
+    Platforms/AppleTVSimulator.platform \
+    Platforms/iPhoneSimulator.platform \
+    $XCODE_APP_DIR_NAME/Contents/SharedFrameworks/LLDB.framework \
+    $XCODE_APP_DIR_NAME/Contents/SharedFrameworks/ModelIO.framework \
+    $XCODE_APP_DIR_NAME/Contents/SharedFrameworks/XCSUI.framework \
+    $XCODE_APP_DIR_NAME/Contents/SharedFrameworks/SceneKit.framework \
+    $XCODE_APP_DIR_NAME/Contents/SharedFrameworks/XCBuild.framework \
+    $XCODE_APP_DIR_NAME/Contents/SharedFrameworks/GPUTools.framework \
+    $(cd $XCODE_APP/.. && ls -d $XCODE_APP_DIR_NAME/Contents/Developer/Platforms/* \
+        | grep -v MacOSX.platform | grep -v WatchSimulator.platform) \
+"
+
+for ex in $EXCLUDE_DIRS; do
+    EXCLUDE_ARGS+="--exclude=$ex "
+done
+
+echo "Copying Xcode.app..."
+echo rsync -rlH $INCLUDE_ARGS $EXCLUDE_ARGS "$XCODE_APP" $DEVKIT_ROOT/
+rsync -rlH $INCLUDE_ARGS $EXCLUDE_ARGS "$XCODE_APP" $DEVKIT_ROOT/
+
+################################################################################
+
+echo-info() {
+    echo "$1" >> $DEVKIT_ROOT/devkit.info
+}
+
+echo "Generating devkit.info..."
+rm -f $DEVKIT_ROOT/devkit.info
+echo-info "# This file describes to configure how to interpret the contents of this devkit"
+echo-info "DEVKIT_NAME=\"Xcode $XCODE_VERSION (devkit)\""
+echo-info "DEVKIT_TOOLCHAIN_PATH=\"\$DEVKIT_ROOT/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:\$DEVKIT_ROOT/Xcode.app/Contents/Developer/usr/bin\""
+echo-info "DEVKIT_SYSROOT=\"\$DEVKIT_ROOT/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/$SDK_VERSION.sdk\""
+echo-info "DEVKIT_EXTRA_PATH=\"\$DEVKIT_TOOLCHAIN_PATH\""
+
+################################################################################
+# Copy this script
+
+echo "Copying this script..."
+cp $0 $DEVKIT_ROOT/
+
+################################################################################
+# Create bundle
+
+echo "Creating bundle..."
+GZIP=$(command -v pigz)
+if [ -z "$GZIP" ]; then
+    GZIP="gzip"
+fi
+(cd $DEVKIT_ROOT && tar c - . | $GZIP - > "$DEVKIT_BUNDLE")
--- a/make/jdk/src/classes/build/tools/taglet/ModuleGraph.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/jdk/src/classes/build/tools/taglet/ModuleGraph.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -64,7 +64,7 @@
         }
 
         String moduleName = ((ModuleElement) element).getQualifiedName().toString();
-        String imageFile = moduleName + "-graph.png";
+        String imageFile = moduleName + "/module-graph.png";
         int thumbnailHeight = -1;
         String hoverImage = "";
         if (!moduleName.equals("java.base")) {
--- a/make/launcher/Launcher-jdk.pack.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/launcher/Launcher-jdk.pack.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -82,7 +82,7 @@
     CFLAGS_linux := -fPIC, \
     CFLAGS_solaris := -KPIC, \
     CFLAGS_macosx := -fPIC, \
-    DISABLED_WARNINGS_gcc := unused-result, \
+    DISABLED_WARNINGS_gcc := unused-result implicit-fallthrough, \
     MAPFILE := $(UNPACK_MAPFILE),\
     LDFLAGS := $(UNPACKEXE_ZIPOBJS) \
         $(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
--- a/make/lib/Awt2dLibraries.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/lib/Awt2dLibraries.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -358,7 +358,8 @@
         WARNINGS_AS_ERRORS_xlc := false, \
         DISABLED_WARNINGS_gcc := type-limits pointer-to-int-cast \
             unused-result maybe-uninitialized format \
-            format-security int-to-pointer-cast parentheses, \
+            format-security int-to-pointer-cast parentheses \
+            implicit-fallthrough, \
         DISABLED_WARNINGS_solstudio := E_DECLARATION_IN_CODE \
             E_ASSIGNMENT_TYPE_MISMATCH E_NON_CONST_INIT, \
         MAPFILE := $(TOPDIR)/make/mapfiles/libawt_xawt/mapfile-vers, \
@@ -491,7 +492,7 @@
     CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBJAVAJPEG_HEADERS) \
         $(LIBJAVA_HEADER_FLAGS) \
         -I$(SUPPORT_OUTPUTDIR)/headers/java.desktop, \
-    DISABLED_WARNINGS_gcc := clobbered, \
+    DISABLED_WARNINGS_gcc := clobbered implicit-fallthrough shift-negative-value, \
     MAPFILE := $(TOPDIR)/make/mapfiles/libjpeg/mapfile-vers, \
     LDFLAGS := $(LDFLAGS_JDKLIB) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
@@ -669,7 +670,7 @@
     CFLAGS_windows = -DCC_NOEX, \
     WARNINGS_AS_ERRORS_xlc := false, \
     DISABLED_WARNINGS_gcc := sign-compare int-to-pointer-cast \
-        type-limits missing-field-initializers, \
+        type-limits missing-field-initializers implicit-fallthrough, \
     DISABLED_WARNINGS_CXX_gcc := reorder delete-non-virtual-dtor strict-overflow \
         maybe-uninitialized, \
     DISABLED_WARNINGS_clang := unused-value incompatible-pointer-types \
@@ -905,9 +906,18 @@
 
   LIBSPLASHSCREEN_LIBS :=
 
-  ifneq ($(USE_EXTERNAL_LIBZ), true)
+  ifeq ($(USE_EXTERNAL_LIBZ), false)
     LIBSPLASHSCREEN_DIRS += $(TOPDIR)/src/java.base/share/native/libzip/zlib
-    LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS)
+  else
+    ifeq ($(OPENJDK_TARGET_OS), macosx)
+      ifeq ($(USE_EXTERNAL_LIBPNG), false)
+        # When building our own libpng and using an external libz, we need to
+        # inject our own libz.h to tweak the exported ZLIB_VERNUM macro. See
+        # $(TOPDIR)/src/java.desktop/macosx/native/libsplashscreen/libpng/zlib.h
+        # for details.
+        LIBSPLASHSCREEN_CFLAGS += -iquote $(TOPDIR)/src/java.desktop/macosx/native/libsplashscreen/libpng
+      endif
+    endif
   endif
 
   ifeq ($(OPENJDK_TARGET_OS), macosx)
@@ -933,8 +943,9 @@
       EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
       OPTIMIZATION := LOW, \
       CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) \
-                $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS), \
-      DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result maybe-uninitialized shift-negative-value, \
+          $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \
+      DISABLED_WARNINGS_gcc := sign-compare type-limits unused-result \
+          maybe-uninitialized shift-negative-value implicit-fallthrough, \
       DISABLED_WARNINGS_clang := incompatible-pointer-types, \
       DISABLED_WARNINGS_solstudio := E_NEWLINE_NOT_LAST E_DECLARATION_IN_CODE \
           E_STATEMENT_NOT_REACHED, \
@@ -942,8 +953,8 @@
       MAPFILE := $(TOPDIR)/make/mapfiles/libsplashscreen/mapfile-vers, \
       LDFLAGS := $(LIBSPLASHSCREEN_LDFLAGS) $(LDFLAGS_JDKLIB) \
           $(call SET_SHARED_LIBRARY_ORIGIN), \
-      LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ) \
-                        $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS), \
+      LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ_LIBS) \
+          $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS), \
       LIBS_aix := -liconv, \
       VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
       RC_FLAGS := $(RC_FLAGS) \
--- a/make/lib/CoreLibraries.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/lib/CoreLibraries.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -67,7 +67,7 @@
       CFLAGS_linux_ppc64le := -ffp-contract=off, \
       CFLAGS_linux_s390x := -ffp-contract=off, \
       CFLAGS_linux_aarch64 := -ffp-contract=off, \
-      DISABLED_WARNINGS_gcc := sign-compare, \
+      DISABLED_WARNINGS_gcc := sign-compare misleading-indentation, \
       DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
       ARFLAGS := $(ARFLAGS), \
       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
@@ -82,7 +82,7 @@
       OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
       SRC := $(LIBFDLIBM_SRC), \
       CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
-      LDFLAGS := -nostdlib -r -arch x86_64, \
+      LDFLAGS := -nostdlib $(ARFLAGS), \
       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
   ))
 
@@ -113,6 +113,7 @@
     SRC := $(TOPDIR)/src/java.base/share/native/libverify, \
     OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
     CFLAGS := $(CFLAGS_JDKLIB), \
+    DISABLED_WARNINGS_gcc := implicit-fallthrough, \
     DISABLED_WARNINGS_microsoft := 4244 4267, \
     MAPFILE := $(TOPDIR)/make/mapfiles/libverify/mapfile-vers, \
     LDFLAGS := $(LDFLAGS_JDKLIB) \
@@ -224,11 +225,12 @@
     SRC := $(TOPDIR)/src/java.base/share/native/libzip, \
     EXCLUDES := $(LIBZIP_EXCLUDES), \
     CFLAGS := $(CFLAGS_JDKLIB) \
-        $(ZLIB_CPPFLAGS) \
+        $(LIBZ_CFLAGS) \
         -I$(TOPDIR)/src/java.base/share/native/libjava \
         -I$(TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
         -I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
     CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
+    DISABLED_WARNINGS_gcc := implicit-fallthrough, \
     MAPFILE := $(TOPDIR)/make/mapfiles/libzip/mapfile-vers, \
     REORDER := $(BUILD_LIBZIP_REORDER), \
     LDFLAGS := $(LDFLAGS_JDKLIB) \
@@ -236,7 +238,7 @@
     LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
         -export:ZIP_ReadEntry -export:ZIP_GetNextEntry \
         -export:ZIP_InflateFully -export:ZIP_CRC32 -export:ZIP_FreeEntry, \
-    LIBS_unix := -ljvm -ljava $(LIBZ), \
+    LIBS_unix := -ljvm -ljava $(LIBZ_LIBS), \
     LIBS_solaris := -lc, \
     LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
     VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
@@ -270,6 +272,7 @@
     EXCLUDES := $(LIBJIMAGE_EXCLUDES), \
     CFLAGS := $(CFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
     CXXFLAGS := $(CXXFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
+    DISABLED_WARNINGS_gcc := implicit-fallthrough, \
     CFLAGS_unix := -UDEBUG, \
     MAPFILE := $(TOPDIR)/make/mapfiles/libjimage/mapfile-vers, \
     LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
@@ -341,8 +344,9 @@
 
 LIBJLI_CFLAGS += $(addprefix -I, $(LIBJLI_SRC_DIRS))
 
+LIBJLI_CFLAGS += $(LIBZ_CFLAGS)
+
 ifneq ($(USE_EXTERNAL_LIBZ), true)
-  LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS)
   LIBJLI_EXTRA_FILES += \
       $(addprefix $(TOPDIR)/src/java.base/share/native/libzip/zlib/, \
           inflate.c \
@@ -362,6 +366,7 @@
     EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
     OPTIMIZATION := HIGH, \
     CFLAGS := $(LIBJLI_CFLAGS), \
+    DISABLED_WARNINGS_gcc := maybe-uninitialized, \
     DISABLED_WARNINGS_solstudio := \
         E_ASM_DISABLES_OPTIMIZATION \
         E_STATEMENT_NOT_REACHED, \
@@ -390,7 +395,7 @@
         -export:JLI_PreprocessArg \
         -export:JLI_AddArgsFromEnvVar \
         -export:JLI_GetAppArgIndex, \
-    LIBS_unix := $(LIBZ), \
+    LIBS_unix := $(LIBZ_LIBS), \
     LIBS_linux := $(LIBDL) -lc -lpthread, \
     LIBS_solaris := $(LIBDL) -lc, \
     LIBS_aix := $(LIBDL),\
@@ -437,7 +442,7 @@
       EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
       OPTIMIZATION := HIGH, \
       CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
-      LDFLAGS := -nostdlib -r, \
+      LDFLAGS := -nostdlib $(ARFLAGS), \
       OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
   ))
 
--- a/make/lib/Lib-java.instrument.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/lib/Lib-java.instrument.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -68,7 +68,7 @@
     LDFLAGS_macosx := -Wl$(COMMA)-all_load, \
     LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
     LIBS := $(JDKLIB_LIBS), \
-    LIBS_unix := -ljava -ljvm $(LIBZ), \
+    LIBS_unix := -ljava -ljvm $(LIBZ_LIBS), \
     LIBS_linux := -ljli $(LIBDL), \
     LIBS_solaris := -ljli $(LIBDL), \
     LIBS_aix := -liconv -ljli_static $(LIBDL), \
--- a/make/lib/Lib-jdk.crypto.ec.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/lib/Lib-jdk.crypto.ec.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -54,7 +54,7 @@
           -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \
       CXXFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \
           $(BUILD_LIBSUNEC_FLAGS), \
-      DISABLED_WARNINGS_gcc := sign-compare, \
+      DISABLED_WARNINGS_gcc := sign-compare implicit-fallthrough, \
       DISABLED_WARNINGS_microsoft := 4101 4244 4146 4018, \
       MAPFILE := $(TOPDIR)/make/mapfiles/libsunec/mapfile-vers, \
       LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \
--- a/make/lib/Lib-jdk.jdwp.agent.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/lib/Lib-jdk.jdwp.agent.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -43,6 +43,7 @@
     OPTIMIZATION := LOW, \
     CFLAGS := $(CFLAGS_JDKLIB) -DUSE_MMAP \
         $(LIBDT_SOCKET_CPPFLAGS), \
+    DISABLED_WARNINGS_gcc := shift-negative-value, \
     MAPFILE := $(TOPDIR)/make/mapfiles/libdt_socket/mapfile-vers, \
     LDFLAGS := $(LDFLAGS_JDKLIB) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/make/lib/Lib-jdk.pack.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/lib/Lib-jdk.pack.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -40,6 +40,7 @@
         -I$(TOPDIR)/src/jdk.pack/share/native/common-unpack \
         $(LIBJAVA_HEADER_FLAGS), \
     CFLAGS_release := -DPRODUCT, \
+    DISABLED_WARNINGS_gcc := implicit-fallthrough, \
     MAPFILE := $(TOPDIR)/make/mapfiles/libunpack/mapfile-vers, \
     LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
         $(call SET_SHARED_LIBRARY_ORIGIN), \
--- a/make/lib/LibCommon.gmk	Thu Feb 08 14:58:40 2018 +0530
+++ b/make/lib/LibCommon.gmk	Thu Feb 08 22:34:20 2018 -0800
@@ -68,12 +68,3 @@
 INSTALL_LIBRARIES_HERE := $(call FindLibDirForModule, $(MODULE))
 
 ################################################################################
-
-# Define it here since there are multiple uses.
-ifeq ($(USE_EXTERNAL_LIBZ), true)
-  LIBZ := -lz
-else
-  ZLIB_CPPFLAGS := -I$(TOPDIR)/src/java.base/share/native/libzip/zlib
-endif
-
-###############################################################################
--- a/src/hotspot/os/aix/os_aix.cpp	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/hotspot/os/aix/os_aix.cpp	Thu Feb 08 22:34:20 2018 -0800
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 2012, 2017 SAP SE. All rights reserved.
+ * Copyright (c) 2012, 2018 SAP SE. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1417,7 +1417,6 @@
 
   os::Aix::meminfo_t mi;
   if (os::Aix::get_meminfo(&mi)) {
-    char buffer[256];
     if (os::Aix::on_aix()) {
       st->print_cr("physical total : " SIZE_FORMAT, mi.real_total);
       st->print_cr("physical free  : " SIZE_FORMAT, mi.real_free);
@@ -1431,10 +1430,9 @@
       // pgsp_free: size of system ASP times percentage of system ASP unused
       st->print_cr("physical total     : " SIZE_FORMAT, mi.real_total);
       st->print_cr("system asp total   : " SIZE_FORMAT, mi.pgsp_total);
-      st->print_cr("%% system asp used : " SIZE_FORMAT,
+      st->print_cr("%% system asp used : %.2f",
         mi.pgsp_total ? (100.0f * (mi.pgsp_total - mi.pgsp_free) / mi.pgsp_total) : -1.0f);
     }
-    st->print_raw(buffer);
   }
   st->cr();
 
--- a/src/hotspot/share/gc/g1/g1RemSet.cpp	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/hotspot/share/gc/g1/g1RemSet.cpp	Thu Feb 08 22:34:20 2018 -0800
@@ -586,20 +586,6 @@
     return;
   }
 
-  // While we are processing RSet buffers during the collection, we
-  // actually don't want to scan any cards on the collection set,
-  // since we don't want to update remembered sets with entries that
-  // point into the collection set, given that live objects from the
-  // collection set are about to move and such entries will be stale
-  // very soon. This change also deals with a reliability issue which
-  // involves scanning a card in the collection set and coming across
-  // an array that was being chunked and looking malformed. Note,
-  // however, that if evacuation fails, we have to scan any objects
-  // that were not moved and create any missing entries.
-  if (r->in_collection_set()) {
-    return;
-  }
-
   // The result from the hot card cache insert call is either:
   //   * pointer to the current card
   //     (implying that the current card is not 'hot'),
@@ -624,8 +610,7 @@
 
       // Check whether the region formerly in the cache should be
       // ignored, as discussed earlier for the original card.  The
-      // region could have been freed while in the cache.  The cset is
-      // not relevant here, since we're in concurrent phase.
+      // region could have been freed while in the cache.
       if (!r->is_old_or_humongous()) {
         return;
       }
--- a/src/hotspot/share/runtime/arguments.cpp	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/hotspot/share/runtime/arguments.cpp	Thu Feb 08 22:34:20 2018 -0800
@@ -729,7 +729,8 @@
       // if flag has become obsolete it should not have a "globals" flag defined anymore.
       if (!version_less_than(JDK_Version::current(), flag.obsolete_in)) {
         if (Flag::find_flag(flag.name) != NULL) {
-          warning("Global variable for obsolete special flag entry \"%s\" should be removed", flag.name);
+          // Temporarily disable the warning: 8196739
+          // warning("Global variable for obsolete special flag entry \"%s\" should be removed", flag.name);
         }
       }
     }
@@ -738,7 +739,8 @@
       // if flag has become expired it should not have a "globals" flag defined anymore.
       if (!version_less_than(JDK_Version::current(), flag.expired_in)) {
         if (Flag::find_flag(flag.name) != NULL) {
-          warning("Global variable for expired flag entry \"%s\" should be removed", flag.name);
+          // Temporarily disable the warning: 8196739
+          // warning("Global variable for expired flag entry \"%s\" should be removed", flag.name);
         }
       }
     }
--- a/src/java.base/share/classes/java/nio/channels/SelectableChannel.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/java/nio/channels/SelectableChannel.java	Thu Feb 08 22:34:20 2018 -0800
@@ -121,7 +121,7 @@
     //   keySet, may be empty but is never null, typ. a tiny array
     //   boolean isRegistered, protected by key set
     //   regLock, lock object to prevent duplicate registrations
-    //   boolean isBlocking, protected by regLock
+    //   blocking mode, protected by regLock
 
     /**
      * Tells whether or not this channel is currently registered with any
--- a/src/java.base/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,14 @@
 package java.nio.channels.spi;
 
 import java.io.IOException;
-import java.nio.channels.*;
+import java.nio.channels.CancelledKeyException;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.ClosedSelectorException;
+import java.nio.channels.IllegalBlockingModeException;
+import java.nio.channels.IllegalSelectorException;
+import java.nio.channels.SelectableChannel;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.Selector;
 
 
 /**
@@ -67,8 +74,8 @@
     // Lock for registration and configureBlocking operations
     private final Object regLock = new Object();
 
-    // Blocking mode, protected by regLock
-    boolean blocking = true;
+    // True when non-blocking, need regLock to change;
+    private volatile boolean nonBlocking;
 
     /**
      * Initializes a new instance of this class.
@@ -197,7 +204,7 @@
                 throw new ClosedChannelException();
             if ((ops & ~validOps()) != 0)
                 throw new IllegalArgumentException();
-            if (blocking)
+            if (isBlocking())
                 throw new IllegalBlockingModeException();
             SelectionKey k = findKey(sel);
             if (k != null) {
@@ -264,9 +271,7 @@
     // -- Blocking --
 
     public final boolean isBlocking() {
-        synchronized (regLock) {
-            return blocking;
-        }
+        return !nonBlocking;
     }
 
     public final Object blockingLock() {
@@ -287,12 +292,13 @@
         synchronized (regLock) {
             if (!isOpen())
                 throw new ClosedChannelException();
-            if (blocking == block)
-                return this;
-            if (block && haveValidKeys())
-                throw new IllegalBlockingModeException();
-            implConfigureBlocking(block);
-            blocking = block;
+            boolean blocking = !nonBlocking;
+            if (block != blocking) {
+                if (block && haveValidKeys())
+                    throw new IllegalBlockingModeException();
+                implConfigureBlocking(block);
+                nonBlocking = !block;
+            }
         }
         return this;
     }
--- a/src/java.base/share/classes/java/util/Locale.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/java/util/Locale.java	Thu Feb 08 22:34:20 2018 -0800
@@ -808,17 +808,26 @@
     }
 
     static Locale getInstance(BaseLocale baseloc, LocaleExtensions extensions) {
-        LocaleKey key = new LocaleKey(baseloc, extensions);
-        return LOCALECACHE.get(key);
+        if (extensions == null) {
+            return LOCALECACHE.get(baseloc);
+        } else {
+            LocaleKey key = new LocaleKey(baseloc, extensions);
+            return LOCALECACHE.get(key);
+        }
     }
 
-    private static class Cache extends LocaleObjectCache<LocaleKey, Locale> {
+    private static class Cache extends LocaleObjectCache<Object, Locale> {
         private Cache() {
         }
 
         @Override
-        protected Locale createObject(LocaleKey key) {
-            return new Locale(key.base, key.exts);
+        protected Locale createObject(Object key) {
+            if (key instanceof BaseLocale) {
+                return new Locale((BaseLocale)key, null);
+            } else {
+                LocaleKey lk = (LocaleKey)key;
+                return new Locale(lk.base, lk.exts);
+            }
         }
     }
 
--- a/src/java.base/share/classes/sun/launcher/resources/launcher_fr.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/launcher/resources/launcher_fr.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,12 +30,12 @@
 java.launcher.opt.hotspot    =\    {0}\t  est un synonyme pour la machine virtuelle "{1}"  [en phase d''abandon]\n
 
 # Translators please note do not translate the options themselves
-java.launcher.opt.footer = \    -cp <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n    -classpath <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n    --class-path <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n                  Liste distincte {0} de r\u00E9pertoires, d''archives JAR\n                  et d'archives ZIP pour rechercher des fichiers de classe.\n    -p <chemin de module>\n    --module-path <chemin de module>...\n                  Liste distincte {0} de r\u00E9pertoires, chaque r\u00E9pertoire\n                  est un r\u00E9pertoire de modules.\n    --upgrade-module-path <chemin de module>...\n                  Liste distincte {0} de r\u00E9pertoires, chaque r\u00E9pertoire\n                  est un r\u00E9pertoire de module qui remplace les modules\n                  pouvant \u00EAtre mis \u00E0 niveau dans l'image d'ex\u00E9cution\n    --add-modules <nom de module>[,<nom de module>...]\n                  modules racine \u00E0 r\u00E9soudre en plus du module initial.\n                  <nom de module> peut \u00E9galement \u00EAtre ALL-DEFAULT, ALL-SYSTEM,\n                  ALL-MODULE-PATH.\n    --list-modules\n                  r\u00E9pertorier les modules observables et quitter\n    -d <nom de module>\n    --describe-module <nom de module>\n                  d\u00E9crire un module et quitter\n    --dry-run     cr\u00E9er une machine virtuelle et charger la classe principale mais ne pas ex\u00E9cuter la m\u00E9thode principale.\n                  L'option--dry-run peut \u00EAtre utile pour la validation des\n                  options de ligne de commande telles que la configuration syst\u00E8me de module.\n    --validate-modules\n                  valider tous les modules et quitter\n                  L'option --validate-modules peut \u00EAtre utile pour la recherche de\n                  conflits et d'autres erreurs avec des modules dans le chemin de module.\n    -D<name>=<value>\n                  d\u00E9finir une propri\u00E9t\u00E9 syst\u00E8me\n    -verbose:[class|module|gc|jni]\n                  activer la sortie en mode verbose\n    -version      afficher la version de produit dans le flux d'erreur et quitter\n    --version     afficher la version de produit dans le flux de sortie et quitter\n    -showversion  afficher la version de produit dans le flux d'erreur et continuer\n    --show-version\n                  afficher la version de produit dans le flux de sortie et continuer\n    --show-module-resolution\n                  afficher la sortie de r\u00E9solution de module lors du d\u00E9marrage\n    -? -h -help\n                  afficher ce message d'aide dans le flux d'erreur\n    --help        afficher ce message d'erreur dans le flux de sortie\n    -X            afficher l'aide sur des options suppl\u00E9mentaires dans le flux d'erreur\n    --help-extra  afficher l'aide sur des options suppl\u00E9mentaires dans le flux de sortie\n    -ea[:<packagename>...|:<classname>]\n    -enableassertions[:<packagename>...|:<classname>]\n                  activer des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n    -da[:<packagename>...|:<classname>]\n    -disableassertions[:<packagename>...|:<classname>]\n                  d\u00E9sactiver des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n    -esa | -enablesystemassertions\n                  activer des assertions syst\u00E8me\n    -dsa | -disablesystemassertions\n                  d\u00E9sactiver des assertions syst\u00E8me\n    -agentlib:<libname>[=<options>]\n                  charger la biblioth\u00E8que d'agent natif <libname>, par ex. -agentlib:jdwp\n                  voir \u00E9galement -agentlib:jdwp=help\n    -agentpath:<pathname>[=<options>]\n                  charger la biblioth\u00E8que d'agent natif par nom de chemin complet\n    -javaagent:<jarpath>[=<options>]\n                  charger l'agent de langage de programmation, voir \
-java.lang.instrument\n    -splash:<imagepath>\n                  afficher l'\u00E9cran d'accueil avec l'image indiqu\u00E9e\n                  Les images redimensionn\u00E9es HiDPI sont automatiquement prises en charge et utilis\u00E9es\n                  si elles sont disponibles. Le nom de fichier d'une image non redimensionn\u00E9e, par ex. image.ext,\n                  doit toujours \u00EAtre transmis comme argument \u00E0 l'option -splash.\n                  L'image redimensionn\u00E9e fournie la plus appropri\u00E9e sera automatiquement\n                  s\u00E9lectionn\u00E9e.\n                  Pour plus d'informations, reportez-vous \u00E0 la documentation relative \u00E0 l'API SplashScreen\n    fichiers @argument\n                  fichiers d'arguments contenant des options\n    -disable-@files\n                  emp\u00EAcher le d\u00E9veloppement suppl\u00E9mentaire de fichiers d'arguments\nAfin d'indiquer un argument pour une option longue, vous pouvez utiliser --<name>=<value> ou\n--<name> <value>.\n
+java.launcher.opt.footer = \    -cp <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n    -classpath <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n    --class-path <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n                  Liste, avec s\u00E9parateur {0}, de r\u00E9pertoires, d''archives JAR\n                  et d'archives ZIP pour rechercher des fichiers de classe.\n    -p <chemin de modules>\n    --module-path <chemin de modules>...\n                  Liste, avec s\u00E9parateur {0}, de r\u00E9pertoires, chaque r\u00E9pertoire\n                  est un r\u00E9pertoire de modules.\n    --upgrade-module-path <chemin de modules>...\n                  Liste, avec s\u00E9parateur {0}, de r\u00E9pertoires, chaque r\u00E9pertoire\n                  est un r\u00E9pertoire de module qui remplace les modules\n                  pouvant \u00EAtre mis \u00E0 niveau dans l'image d'ex\u00E9cution\n    --add-modules <nom de module>[,<nom de module>...]\n                  modules racine \u00E0 r\u00E9soudre en plus du module initial.\n                  <nom de module> peut \u00E9galement \u00EAtre ALL-DEFAULT, ALL-SYSTEM,\n                  ALL-MODULE-PATH.\n    --list-modules\n                  r\u00E9pertorier les modules observables et quitter\n    -d <nom de module>\n    --describe-module <nom de module>\n                  d\u00E9crire un module et quitter\n    --dry-run     cr\u00E9er une machine virtuelle et charger la classe principale mais ne pas ex\u00E9cuter la m\u00E9thode principale.\n                  L'option--dry-run peut \u00EAtre utile pour la validation des\n                  options de ligne de commande telles que la configuration du syst\u00E8me de modules.\n    --validate-modules\n                  valider tous les modules et quitter\n                  L'option --validate-modules peut \u00EAtre utile pour la recherche de\n                  conflits et d'autres erreurs avec des modules dans le chemin de modules.\n    -D<name>=<value>\n                  d\u00E9finir une propri\u00E9t\u00E9 syst\u00E8me\n    -verbose:[class|module|gc|jni]\n                  activer la sortie en mode verbose\n    -version      afficher la version de produit dans le flux d'erreur et quitter\n    --version     afficher la version de produit dans le flux de sortie et quitter\n    -showversion  afficher la version de produit dans le flux d'erreur et continuer\n    --show-version\n                  afficher la version de produit dans le flux de sortie et continuer\n    --show-module-resolution\n                  afficher la sortie de r\u00E9solution de module lors du d\u00E9marrage\n    -? -h -help\n                  afficher ce message d'aide dans le flux d'erreur\n    --help        afficher ce message d'erreur dans le flux de sortie\n    -X            afficher l'aide sur des options suppl\u00E9mentaires dans le flux d'erreur\n    --help-extra  afficher l'aide sur des options suppl\u00E9mentaires dans le flux de sortie\n    -ea[:<packagename>...|:<classname>]\n    -enableassertions[:<packagename>...|:<classname>]\n                  activer des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n    -da[:<packagename>...|:<classname>]\n    -disableassertions[:<packagename>...|:<classname>]\n                  d\u00E9sactiver des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n    -esa | -enablesystemassertions\n                  activer des assertions syst\u00E8me\n    -dsa | -disablesystemassertions\n                  d\u00E9sactiver des assertions syst\u00E8me\n    -agentlib:<libname>[=<options>]\n                  charger la biblioth\u00E8que d'agent natif <libname>, par ex. -agentlib:jdwp\n                  voir \u00E9galement -agentlib:jdwp=help\n    -agentpath:<pathname>[=<options>]\n                  charger la biblioth\u00E8que d'agent natif par nom de chemin complet\n    -javaagent:<jarpath>[=<options>]\n                  charger \
+l'agent de langage de programmation, voir java.lang.instrument\n    -splash:<imagepath>\n                  afficher l'\u00E9cran d'accueil avec l'image indiqu\u00E9e\n                  Les images redimensionn\u00E9es HiDPI sont automatiquement prises en charge et utilis\u00E9es\n                  si elles sont disponibles. Le nom de fichier d'une image non redimensionn\u00E9e, par ex. image.ext,\n                  doit toujours \u00EAtre transmis comme argument \u00E0 l'option -splash.\n                  L'image redimensionn\u00E9e fournie la plus appropri\u00E9e sera automatiquement\n                  s\u00E9lectionn\u00E9e.\n                  Pour plus d'informations, reportez-vous \u00E0 la documentation relative \u00E0 l'API SplashScreen\n    fichiers @argument\n                  fichiers d'arguments contenant des options\n    -disable-@files\n                  emp\u00EAcher le d\u00E9veloppement suppl\u00E9mentaire de fichiers d'arguments\nAfin d'indiquer un argument pour une option longue, vous pouvez utiliser --<name>=<value> ou\n--<name> <value>.\n
 
 # Translators please note do not translate the options themselves
-java.launcher.X.usage=\n    -Xbatch           d\u00E9sactivation de la compilation en arri\u00E8re-plan\n    -Xbootclasspath/a :<r\u00E9pertoires et fichiers ZIP/JAR s\u00E9par\u00E9s par des {0}>\n                      ajout \u00E0 la fin du chemin de classe bootstrap\n    -Xcheck:jni       ex\u00E9cution de contr\u00F4les suppl\u00E9mentaires pour les fonctions JNI\n    -Xcomp            force la compilation de m\u00E9thodes au premier appel\n    -Xdebug           fourni pour la compatibilit\u00E9 amont\n    -Xdiag            affichage de messages de diagnostic suppl\u00E9mentaires\n    -Xfuture          activation des contr\u00F4les les plus stricts en vue d''anticiper la future valeur par d\u00E9faut\n    -Xint             ex\u00E9cution en mode interpr\u00E9t\u00E9 uniquement\n    -Xinternalversion\n                      affiche des informations de version JVM plus d\u00E9taill\u00E9es que\n                      l''option -version\n    -Xloggc:<file>    journalisation du statut de l''op\u00E9ration de ramasse-miette dans un fichier avec horodatages\n    -Xmixed           ex\u00E9cution en mode mixte (valeur par d\u00E9faut)\n    -Xmn<size>        d\u00E9finit les tailles initiale et maximale (en octets) de la portion de m\u00E9moire\n                      pour la jeune g\u00E9n\u00E9ration (nursery)\n    -Xms<size>        d\u00E9finition de la taille initiale des portions de m\u00E9moire Java\n    -Xmx<size>        d\u00E9finition de la taille maximale des portions de m\u00E9moire Java\n    -Xnoclassgc       d\u00E9sactivation de l''op\u00E9ration de ramasse-miette de la classe\n    -Xrs               r\u00E9duction de l''utilisation des signaux OS par Java/la machine virtuelle (voir documentation)\n    -Xshare:auto      utilisation des donn\u00E9es de classe partag\u00E9es si possible (valeur par d\u00E9faut)\n    -Xshare:off       aucune tentative d''utilisation des donn\u00E9es de classe partag\u00E9es\n    -Xshare:on        utilisation des donn\u00E9es de classe partag\u00E9es obligatoire ou \u00E9chec de l''op\u00E9ration.\n    -XshowSettings    affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n    -XshowSettings:all\n                      affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n    -XshowSettings:locale\n                       affichage de tous les param\u00E8tres d''environnement local et poursuite de l''op\u00E9ration\n    -XshowSettings:properties\n                       affichage de tous les param\u00E8tres de propri\u00E9t\u00E9 et poursuite de l''op\u00E9ration\n    -XshowSettings:vm affichage de tous les param\u00E8tres de machine virtuelle et poursuite de l''op\u00E9ration\n    -Xss<size>        d\u00E9finition de la taille de pile de thread Java\n    -Xverify          d\u00E9finit le mode du v\u00E9rificateur de code ex\u00E9cutable\n    --add-reads <module>=<target-module>(,<target-module>)*\n                      met \u00E0 jour <module> pour lire <target-module>, sans tenir compte\n                      de la d\u00E9claration de module. \n                      <target-module> peut \u00EAtre ALL-UNNAMED pour lire tous les\n                      modules sans nom.\n    --add-exports <module>/<package>=<target-module>(,<target-module>)*\n                      met \u00E0 jour <module> pour exporter <package> vers <target-module>,\n                      sans tenir compte de la d\u00E9claration de module.\n                      <target-module> peut \u00EAtre ALL-UNNAMED pour effectuer un export vers tous\n                      les modules sans nom.\n    --add-opens <module>/<package>=<target-module>(,<target-module>)*\n                      met \u00E0 jour <module> pour ouvrir <package> vers\n                      <target-module>, sans tenir compte de la d\u00E9claration de module.\n    --illegal-access=<value>\n                      autorise ou refuse l''acc\u00E8s \u00E0 des membres de types dans des modules nomm\u00E9s\n                      par code \
-dans des modules sans nom.\n                      <value> est l''une des valeurs suivantes : "deny", "permit", "warn" ou "debug"\n                      Cette option sera enlev\u00E9e dans une version ult\u00E9rieure.\n    --limit-modules <module name>[,<module name>...]\n                      limite l''univers des modules observables\n    --patch-module <module>=<file>({0}<file>)*\n                      remplace ou augmente un module avec des classes et des ressources\n                      dans des fichiers ou r\u00E9pertoires JAR.\n    --disable-@files  d\u00E9sactive d''autres d\u00E9veloppements de fichier d''argument\n\nCes options suppl\u00E9mentaires peuvent \u00EAtre modifi\u00E9es sans pr\u00E9avis.\n
+java.launcher.X.usage=\n    -Xbatch           d\u00E9sactivation de la compilation en arri\u00E8re-plan\n    -Xbootclasspath/a:<r\u00E9pertoires et fichiers ZIP/JAR s\u00E9par\u00E9s par des {0}>\n                      ajout \u00E0 la fin du chemin de classe bootstrap\n    -Xcheck:jni       ex\u00E9cution de contr\u00F4les suppl\u00E9mentaires pour les fonctions JNI\n    -Xcomp            force la compilation de m\u00E9thodes au premier appel\n    -Xdebug           fourni pour la compatibilit\u00E9 amont\n    -Xdiag            affichage de messages de diagnostic suppl\u00E9mentaires\n    -Xfuture          activation des contr\u00F4les les plus stricts en vue d''anticiper la future valeur par d\u00E9faut\n    -Xint             ex\u00E9cution en mode interpr\u00E9t\u00E9 uniquement\n    -Xinternalversion\n                      affiche des informations de version JVM plus d\u00E9taill\u00E9es que\n                      l''option -version\n    -Xloggc:<file>    journalisation du statut de l''op\u00E9ration de ramasse-miette dans un fichier avec horodatages\n    -Xmixed           ex\u00E9cution en mode mixte (valeur par d\u00E9faut)\n    -Xmn<size>        d\u00E9finit les tailles initiale et maximale (en octets) de la portion de m\u00E9moire\n                      pour la jeune g\u00E9n\u00E9ration (nursery)\n    -Xms<size>        d\u00E9finition de la taille initiale des portions de m\u00E9moire Java\n    -Xmx<size>        d\u00E9finition de la taille maximale des portions de m\u00E9moire Java\n    -Xnoclassgc       d\u00E9sactivation de l''op\u00E9ration de ramasse-miette de la classe\n    -Xrs               r\u00E9duction de l''utilisation des signaux OS par Java/la machine virtuelle (voir documentation)\n    -Xshare:auto      utilisation des donn\u00E9es de classe partag\u00E9es si possible (valeur par d\u00E9faut)\n    -Xshare:off       aucune tentative d''utilisation des donn\u00E9es de classe partag\u00E9es\n    -Xshare:on        utilisation des donn\u00E9es de classe partag\u00E9es obligatoire ou \u00E9chec de l''op\u00E9ration.\n    -XshowSettings    affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n    -XshowSettings:all\n                      affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n    -XshowSettings:locale\n                       affichage de tous les param\u00E8tres d''environnement local et poursuite de l''op\u00E9ration\n    -XshowSettings:properties\n                       affichage de tous les param\u00E8tres de propri\u00E9t\u00E9 et poursuite de l''op\u00E9ration\n    -XshowSettings:vm affichage de tous les param\u00E8tres de machine virtuelle et poursuite de l''op\u00E9ration\n    -Xss<size>        d\u00E9finition de la taille de pile de thread Java\n    -Xverify          d\u00E9finit le mode du v\u00E9rificateur de code ex\u00E9cutable\n    --add-reads <module>=<target-module>(,<target-module>)*\n                      met \u00E0 jour <module> pour lire <target-module>, sans tenir compte\n                      de la d\u00E9claration de module. \n                      <target-module> peut \u00EAtre ALL-UNNAMED pour lire tous les\n                      modules sans nom.\n    --add-exports <module>/<package>=<target-module>(,<target-module>)*\n                      met \u00E0 jour <module> pour exporter <package> vers <target-module>,\n                      sans tenir compte de la d\u00E9claration de module.\n                      <target-module> peut \u00EAtre ALL-UNNAMED pour effectuer un export vers tous\n                      les modules sans nom.\n    --add-opens <module>/<package>=<target-module>(,<target-module>)*\n                      met \u00E0 jour <module> pour ouvrir <package> vers\n                      <target-module>, sans tenir compte de la d\u00E9claration de module.\n    --illegal-access=<value>\n                      autorise ou refuse l''acc\u00E8s \u00E0 des membres de types dans des modules nomm\u00E9s\n                      par code \
+dans des modules sans nom.\n                      <value> est l''une des valeurs suivantes : "deny", "permit", "warn" ou "debug"\n                      Cette option sera enlev\u00E9e dans une version ult\u00E9rieure.\n    --limit-modules <module name>[,<module name>...]\n                      limite l''univers des modules observables\n    --patch-module <module>=<file>({0}<file>)*\n                      remplace ou augmente un module avec des classes et des ressources\n                      dans des fichiers JAR ou des r\u00E9pertoires.\n    --disable-@files  d\u00E9sactive d''autres d\u00E9veloppements de fichier d''argument\n\nCes options suppl\u00E9mentaires peuvent \u00EAtre modifi\u00E9es sans pr\u00E9avis.\n
 
 # Translators please note do not translate the options themselves
 java.launcher.X.macosx.usage=\nLes options suivantes sont propres \u00E0 Mac OS X :\n    -XstartOnFirstThread\n                      ex\u00E9cute la m\u00E9thode main() sur le premier thread (AppKit)\n    -Xdock:name=<nom d'application>\n                      remplace le nom d'application par d\u00E9faut affich\u00E9 dans l'ancrage\n    -Xdock:icon=<chemin vers le fichier d'ic\u00F4ne>\n                      remplace l'ic\u00F4ne par d\u00E9faut affich\u00E9e dans l'ancrage\n\n
--- a/src/java.base/share/classes/sun/nio/ch/AsynchronousFileChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/AsynchronousFileChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -136,7 +136,7 @@
         if (fileLockTable == null) {
             synchronized (this) {
                 if (fileLockTable == null) {
-                    fileLockTable = FileLockTable.newSharedFileLockTable(this, fdObj);
+                    fileLockTable = new FileLockTable(this, fdObj);
                 }
             }
         }
--- a/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/DatagramChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,11 +27,32 @@
 
 import java.io.FileDescriptor;
 import java.io.IOException;
-import java.net.*;
+import java.net.DatagramSocket;
+import java.net.Inet4Address;
+import java.net.Inet6Address;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.NetworkInterface;
+import java.net.PortUnreachableException;
+import java.net.ProtocolFamily;
+import java.net.SocketAddress;
+import java.net.SocketOption;
+import java.net.StandardProtocolFamily;
+import java.net.StandardSocketOptions;
 import java.nio.ByteBuffer;
-import java.nio.channels.*;
-import java.nio.channels.spi.*;
-import java.util.*;
+import java.nio.channels.AlreadyBoundException;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.DatagramChannel;
+import java.nio.channels.MembershipKey;
+import java.nio.channels.NotYetConnectedException;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.UnsupportedAddressTypeException;
+import java.nio.channels.spi.SelectorProvider;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.locks.ReentrantLock;
+
 import sun.net.ResourceManager;
 import sun.net.ext.ExtendedSocketOptions;
 
@@ -49,9 +70,6 @@
 
     // Our file descriptor
     private final FileDescriptor fd;
-
-    // fd value needed for dev/poll. This value will remain valid
-    // even after the value in the file descriptor object has been set to -1
     private final int fdVal;
 
     // The protocol family of the socket
@@ -67,10 +85,10 @@
     private int cachedSenderPort;
 
     // Lock held by current reading or connecting thread
-    private final Object readLock = new Object();
+    private final ReentrantLock readLock = new ReentrantLock();
 
     // Lock held by current writing or connecting thread
-    private final Object writeLock = new Object();
+    private final ReentrantLock writeLock = new ReentrantLock();
 
     // Lock held by any thread that modifies the state fields declared below
     // DO NOT invoke a blocking I/O operation while holding this lock!
@@ -103,7 +121,6 @@
 
     // -- End of fields protected by stateLock
 
-
     public DatagramChannelImpl(SelectorProvider sp)
         throws IOException
     {
@@ -138,16 +155,27 @@
                 throw new UnsupportedOperationException("IPv6 not available");
             }
         }
-        this.family = family;
-        this.fd = Net.socket(family, false);
-        this.fdVal = IOUtil.fdVal(fd);
-        this.state = ST_UNCONNECTED;
+
+        ResourceManager.beforeUdpCreate();
+        try {
+            this.family = family;
+            this.fd = Net.socket(family, false);
+            this.fdVal = IOUtil.fdVal(fd);
+            this.state = ST_UNCONNECTED;
+        } catch (IOException ioe) {
+            ResourceManager.afterUdpClose();
+            throw ioe;
+        }
     }
 
     public DatagramChannelImpl(SelectorProvider sp, FileDescriptor fd)
         throws IOException
     {
         super(sp);
+
+        // increment UDP count to match decrement when closing
+        ResourceManager.beforeUdpCreate();
+
         this.family = Net.isIPv6Available() ?
             StandardProtocolFamily.INET6 : StandardProtocolFamily.INET;
         this.fd = fd;
@@ -328,7 +356,8 @@
     public SocketAddress receive(ByteBuffer dst) throws IOException {
         if (dst.isReadOnly())
             throw new IllegalArgumentException("Read-only buffer");
-        synchronized (readLock) {
+        readLock.lock();
+        try {
             ensureOpen();
             // Socket was not bound before attempting receive
             if (localAddress() == null)
@@ -348,6 +377,8 @@
                     if (n == IOStatus.UNAVAILABLE)
                         return null;
                 } else {
+                    // Cannot receive into user's buffer when running with a
+                    // security manager and not connected
                     bb = Util.getTemporaryDirectBuffer(dst.remaining());
                     for (;;) {
                         do {
@@ -379,6 +410,8 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            readLock.unlock();
         }
     }
 
@@ -425,7 +458,8 @@
         if (src == null)
             throw new NullPointerException();
 
-        synchronized (writeLock) {
+        writeLock.lock();
+        try {
             ensureOpen();
             InetSocketAddress isa = Net.checkAddress(target);
             InetAddress ia = isa.getAddress();
@@ -474,6 +508,8 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            writeLock.unlock();
         }
     }
 
@@ -534,7 +570,8 @@
     public int read(ByteBuffer buf) throws IOException {
         if (buf == null)
             throw new NullPointerException();
-        synchronized (readLock) {
+        readLock.lock();
+        try {
             synchronized (stateLock) {
                 ensureOpen();
                 if (!isConnected())
@@ -555,6 +592,8 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            readLock.unlock();
         }
     }
 
@@ -563,7 +602,8 @@
     {
         if ((offset < 0) || (length < 0) || (offset > dsts.length - length))
             throw new IndexOutOfBoundsException();
-        synchronized (readLock) {
+        readLock.lock();
+        try {
             synchronized (stateLock) {
                 ensureOpen();
                 if (!isConnected())
@@ -584,13 +624,16 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            readLock.unlock();
         }
     }
 
     public int write(ByteBuffer buf) throws IOException {
         if (buf == null)
             throw new NullPointerException();
-        synchronized (writeLock) {
+        writeLock.lock();
+        try {
             synchronized (stateLock) {
                 ensureOpen();
                 if (!isConnected())
@@ -611,6 +654,8 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            writeLock.unlock();
         }
     }
 
@@ -619,7 +664,8 @@
     {
         if ((offset < 0) || (length < 0) || (offset > srcs.length - length))
             throw new IndexOutOfBoundsException();
-        synchronized (writeLock) {
+        writeLock.lock();
+        try {
             synchronized (stateLock) {
                 ensureOpen();
                 if (!isConnected())
@@ -640,6 +686,8 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            writeLock.unlock();
         }
     }
 
@@ -661,8 +709,10 @@
 
     @Override
     public DatagramChannel bind(SocketAddress local) throws IOException {
-        synchronized (readLock) {
-            synchronized (writeLock) {
+        readLock.lock();
+        try {
+            writeLock.lock();
+            try {
                 synchronized (stateLock) {
                     ensureOpen();
                     if (localAddress != null)
@@ -692,7 +742,11 @@
                     Net.bind(family, fd, isa.getAddress(), isa.getPort());
                     localAddress = Net.localAddress(fd);
                 }
+            } finally {
+                writeLock.unlock();
             }
+        } finally {
+            readLock.unlock();
         }
         return this;
     }
@@ -714,8 +768,10 @@
 
     @Override
     public DatagramChannel connect(SocketAddress sa) throws IOException {
-        synchronized(readLock) {
-            synchronized(writeLock) {
+        readLock.lock();
+        try {
+            writeLock.lock();
+            try {
                 synchronized (stateLock) {
                     ensureOpenAndUnconnected();
                     InetSocketAddress isa = Net.checkAddress(sa);
@@ -741,10 +797,9 @@
                     localAddress = Net.localAddress(fd);
 
                     // flush any packets already received.
-                    boolean blocking = false;
                     synchronized (blockingLock()) {
+                        boolean blocking = isBlocking();
                         try {
-                            blocking = isBlocking();
                             ByteBuffer tmpBuf = ByteBuffer.allocate(100);
                             if (blocking) {
                                 configureBlocking(false);
@@ -759,14 +814,20 @@
                         }
                     }
                 }
+            } finally {
+                writeLock.unlock();
             }
+        } finally {
+            readLock.unlock();
         }
         return this;
     }
 
     public DatagramChannel disconnect() throws IOException {
-        synchronized(readLock) {
-            synchronized(writeLock) {
+        readLock.lock();
+        try {
+            writeLock.lock();
+            try {
                 synchronized (stateLock) {
                     if (!isConnected() || !isOpen())
                         return this;
@@ -783,7 +844,11 @@
                     // refresh local address
                     localAddress = Net.localAddress(fd);
                 }
+            } finally {
+                writeLock.unlock();
             }
+        } finally {
+            readLock.unlock();
         }
         return this;
     }
@@ -1087,7 +1152,8 @@
     int poll(int events, long timeout) throws IOException {
         assert Thread.holdsLock(blockingLock()) && !isBlocking();
 
-        synchronized (readLock) {
+        readLock.lock();
+        try {
             int n = 0;
             try {
                 begin();
@@ -1102,6 +1168,8 @@
                 end(n > 0);
             }
             return n;
+        } finally {
+            readLock.unlock();
         }
     }
 
--- a/src/java.base/share/classes/sun/nio/ch/DatagramSocketAdaptor.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/DatagramSocketAdaptor.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,22 @@
 
 package sun.nio.ch;
 
-import java.io.*;
-import java.net.*;
-import java.nio.*;
-import java.nio.channels.*;
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.DatagramSocket;
+import java.net.DatagramSocketImpl;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.NetworkInterface;
+import java.net.SocketAddress;
+import java.net.SocketException;
+import java.net.SocketOption;
+import java.net.SocketTimeoutException;
+import java.net.StandardSocketOptions;
+import java.nio.ByteBuffer;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.DatagramChannel;
+import java.nio.channels.IllegalBlockingModeException;
 
 
 // Make a datagram-socket channel look like a datagram socket.
@@ -178,7 +190,6 @@
 
         dc.configureBlocking(false);
         try {
-            int n;
             SocketAddress sender;
             if ((sender = dc.receive(bb)) != null)
                 return sender;
@@ -188,19 +199,18 @@
                      throw new ClosedChannelException();
                 long st = System.currentTimeMillis();
                 int result = dc.poll(Net.POLLIN, to);
-                if (result > 0 &&
-                        ((result & Net.POLLIN) != 0)) {
+                if (result > 0 && ((result & Net.POLLIN) != 0)) {
                     if ((sender = dc.receive(bb)) != null)
                         return sender;
                 }
                 to -= System.currentTimeMillis() - st;
                 if (to <= 0)
                     throw new SocketTimeoutException();
-
             }
         } finally {
-            if (dc.isOpen())
+            try {
                 dc.configureBlocking(true);
+            } catch (ClosedChannelException e) { }
         }
     }
 
--- a/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/FileChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -1083,49 +1083,19 @@
 
     // -- Locks --
 
-
-
     // keeps track of locks on this file
     private volatile FileLockTable fileLockTable;
 
-    // indicates if file locks are maintained system-wide (as per spec)
-    private static boolean isSharedFileLockTable;
-
-    // indicates if the disableSystemWideOverlappingFileLockCheck property
-    // has been checked
-    private static volatile boolean propertyChecked;
-
-    // The lock list in J2SE 1.4/5.0 was local to each FileChannel instance so
-    // the overlap check wasn't system wide when there were multiple channels to
-    // the same file. This property is used to get 1.4/5.0 behavior if desired.
-    private static boolean isSharedFileLockTable() {
-        if (!propertyChecked) {
-            synchronized (FileChannelImpl.class) {
-                if (!propertyChecked) {
-                    String value = GetPropertyAction.privilegedGetProperty(
-                            "sun.nio.ch.disableSystemWideOverlappingFileLockCheck");
-                    isSharedFileLockTable = ((value == null) || value.equals("false"));
-                    propertyChecked = true;
-                }
-            }
-        }
-        return isSharedFileLockTable;
-    }
-
     private FileLockTable fileLockTable() throws IOException {
         if (fileLockTable == null) {
             synchronized (this) {
                 if (fileLockTable == null) {
-                    if (isSharedFileLockTable()) {
-                        int ti = threads.add();
-                        try {
-                            ensureOpen();
-                            fileLockTable = FileLockTable.newSharedFileLockTable(this, fd);
-                        } finally {
-                            threads.remove(ti);
-                        }
-                    } else {
-                        fileLockTable = new SimpleFileLockTable();
+                    int ti = threads.add();
+                    try {
+                        ensureOpen();
+                        fileLockTable = new FileLockTable(this, fd);
+                    } finally {
+                        threads.remove(ti);
                     }
                 }
             }
@@ -1229,59 +1199,6 @@
         fileLockTable.remove(fli);
     }
 
-    // -- File lock support --
-
-    /**
-     * A simple file lock table that maintains a list of FileLocks obtained by a
-     * FileChannel. Use to get 1.4/5.0 behaviour.
-     */
-    private static class SimpleFileLockTable extends FileLockTable {
-        // synchronize on list for access
-        private final List<FileLock> lockList = new ArrayList<FileLock>(2);
-
-        public SimpleFileLockTable() {
-        }
-
-        private void checkList(long position, long size)
-            throws OverlappingFileLockException
-        {
-            assert Thread.holdsLock(lockList);
-            for (FileLock fl: lockList) {
-                if (fl.overlaps(position, size)) {
-                    throw new OverlappingFileLockException();
-                }
-            }
-        }
-
-        public void add(FileLock fl) throws OverlappingFileLockException {
-            synchronized (lockList) {
-                checkList(fl.position(), fl.size());
-                lockList.add(fl);
-            }
-        }
-
-        public void remove(FileLock fl) {
-            synchronized (lockList) {
-                lockList.remove(fl);
-            }
-        }
-
-        public List<FileLock> removeAll() {
-            synchronized(lockList) {
-                List<FileLock> result = new ArrayList<FileLock>(lockList);
-                lockList.clear();
-                return result;
-            }
-        }
-
-        public void replace(FileLock fl1, FileLock fl2) {
-            synchronized (lockList) {
-                lockList.remove(fl1);
-                lockList.add(fl2);
-            }
-        }
-    }
-
     // -- Native methods --
 
     // Creates a new mapping
--- a/src/java.base/share/classes/sun/nio/ch/FileLockTable.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/FileLockTable.java	Thu Feb 08 22:34:20 2018 -0800
@@ -25,64 +25,27 @@
 
 package sun.nio.ch;
 
-import java.nio.channels.*;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.lang.ref.*;
 import java.io.FileDescriptor;
 import java.io.IOException;
-
-abstract class FileLockTable {
-    protected FileLockTable() {
-    }
-
-    /**
-     * Creates and returns a file lock table for a channel that is connected to
-     * the a system-wide map of all file locks for the Java virtual machine.
-     */
-    public static FileLockTable newSharedFileLockTable(Channel channel,
-                                                       FileDescriptor fd)
-        throws IOException
-    {
-        return new SharedFileLockTable(channel, fd);
-    }
-
-    /**
-     * Adds a file lock to the table.
-     *
-     * @throws OverlappingFileLockException if the file lock overlaps
-     *         with an existing file lock in the table
-     */
-    public abstract void add(FileLock fl) throws OverlappingFileLockException;
-
-    /**
-     * Remove an existing file lock from the table.
-     */
-    public abstract void remove(FileLock fl);
-
-    /**
-     * Removes all file locks from the table.
-     *
-     * @return  The list of file locks removed
-     */
-    public abstract List<FileLock> removeAll();
-
-    /**
-     * Replaces an existing file lock in the table.
-     */
-    public abstract void replace(FileLock fl1, FileLock fl2);
-}
-
+import java.lang.ref.ReferenceQueue;
+import java.lang.ref.WeakReference;
+import java.nio.channels.Channel;
+import java.nio.channels.FileLock;
+import java.nio.channels.OverlappingFileLockException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * A file lock table that is over a system-wide map of all file locks.
  */
-class SharedFileLockTable extends FileLockTable {
-
+class FileLockTable {
     /**
      * A weak reference to a FileLock.
      * <p>
-     * SharedFileLockTable uses a list of file lock references to avoid keeping the
+     * FileLockTable uses a list of file lock references to avoid keeping the
      * FileLock (and FileChannel) alive.
      */
     private static class FileLockReference extends WeakReference<FileLock> {
@@ -118,14 +81,17 @@
     // Locks obtained for this channel
     private final Set<FileLock> locks;
 
-    SharedFileLockTable(Channel channel, FileDescriptor fd) throws IOException {
+    /**
+     * Creates a file lock table for a channel that is connected to the
+     * system-wide map of all file locks for the Java virtual machine.
+     */
+    FileLockTable(Channel channel, FileDescriptor fd) throws IOException {
         this.channel = channel;
         this.fileKey = FileKey.create(fd);
         this.locks = new HashSet<FileLock>();
     }
 
-    @Override
-    public void add(FileLock fl) throws OverlappingFileLockException {
+    void add(FileLock fl) throws OverlappingFileLockException {
         List<FileLockReference> list = lockMap.get(fileKey);
 
         for (;;) {
@@ -176,8 +142,7 @@
         }
     }
 
-    @Override
-    public void remove(FileLock fl) {
+    void remove(FileLock fl) {
         assert fl != null;
 
         // the lock must exist so the list of locks must be present
@@ -201,8 +166,7 @@
         }
     }
 
-    @Override
-    public List<FileLock> removeAll() {
+    List<FileLock> removeAll() {
         List<FileLock> result = new ArrayList<FileLock>();
         List<FileLockReference> list = lockMap.get(fileKey);
         if (list != null) {
@@ -234,8 +198,7 @@
         return result;
     }
 
-    @Override
-    public void replace(FileLock fromLock, FileLock toLock) {
+    void replace(FileLock fromLock, FileLock toLock) {
         // the lock must exist so there must be a list
         List<FileLockReference> list = lockMap.get(fileKey);
         assert list != null;
--- a/src/java.base/share/classes/sun/nio/ch/IOUtil.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/IOUtil.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,7 +78,7 @@
             src.position(pos);
 
             int n = writeFromNativeBuffer(fd, bb, position,
-                    directIO, alignment, nd);
+                                          directIO, alignment, nd);
             if (n > 0) {
                 // now update src
                 src.position(pos + n);
@@ -161,8 +161,7 @@
                     if (!(buf instanceof DirectBuffer)) {
                         ByteBuffer shadow;
                         if (directIO)
-                            shadow = Util.getTemporaryAlignedDirectBuffer(rem,
-                                    alignment);
+                            shadow = Util.getTemporaryAlignedDirectBuffer(rem, alignment);
                         else
                             shadow = Util.getTemporaryDirectBuffer(rem);
                         shadow.put(buf);
@@ -241,8 +240,7 @@
         int rem = dst.remaining();
         if (directIO) {
             Util.checkRemainingBufferSizeAligned(rem, alignment);
-            bb = Util.getTemporaryAlignedDirectBuffer(rem,
-                                                      alignment);
+            bb = Util.getTemporaryAlignedDirectBuffer(rem, alignment);
         } else {
             bb = Util.getTemporaryDirectBuffer(rem);
         }
@@ -277,8 +275,7 @@
             return 0;
         int n = 0;
         if (position != -1) {
-            n = nd.pread(fd, ((DirectBuffer)bb).address() + pos,
-                         rem, position);
+            n = nd.pread(fd, ((DirectBuffer)bb).address() + pos, rem, position);
         } else {
             n = nd.read(fd, ((DirectBuffer)bb).address() + pos, rem);
         }
@@ -332,8 +329,7 @@
                     if (!(buf instanceof DirectBuffer)) {
                         ByteBuffer shadow;
                         if (directIO) {
-                            shadow = Util.getTemporaryAlignedDirectBuffer(rem,
-                                    alignment);
+                            shadow = Util.getTemporaryAlignedDirectBuffer(rem, alignment);
                         } else {
                             shadow = Util.getTemporaryDirectBuffer(rem);
                         }
--- a/src/java.base/share/classes/sun/nio/ch/ServerSocketAdaptor.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/ServerSocketAdaptor.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,9 +25,20 @@
 
 package sun.nio.ch;
 
-import java.io.*;
-import java.net.*;
-import java.nio.channels.*;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.net.SocketAddress;
+import java.net.SocketException;
+import java.net.SocketTimeoutException;
+import java.net.StandardSocketOptions;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.IllegalBlockingModeException;
+import java.nio.channels.NotYetBoundException;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
 
 
 // Make a server-socket channel look like a server socket.
@@ -37,7 +48,7 @@
 // class.
 //
 
-public class ServerSocketAdaptor                        // package-private
+class ServerSocketAdaptor                        // package-private
     extends ServerSocket
 {
 
@@ -96,13 +107,18 @@
             try {
                 if (!ssc.isBound())
                     throw new NotYetBoundException();
+
                 if (timeout == 0) {
+                    // for compatibility reasons: accept connection if available
+                    // when configured non-blocking
                     SocketChannel sc = ssc.accept();
                     if (sc == null && !ssc.isBlocking())
                         throw new IllegalBlockingModeException();
                     return sc.socket();
                 }
 
+                if (!ssc.isBlocking())
+                    throw new IllegalBlockingModeException();
                 ssc.configureBlocking(false);
                 try {
                     SocketChannel sc;
@@ -121,10 +137,10 @@
                             throw new SocketTimeoutException();
                     }
                 } finally {
-                    if (ssc.isOpen())
+                    try {
                         ssc.configureBlocking(true);
+                    } catch (ClosedChannelException e) { }
                 }
-
             } catch (Exception x) {
                 Net.translateException(x);
                 assert false;
@@ -178,8 +194,7 @@
         if (!isBound())
             return "ServerSocket[unbound]";
         return "ServerSocket[addr=" + getInetAddress() +
-            //          ",port=" + getPort() +
-                ",localport=" + getLocalPort()  + "]";
+               ",localport=" + getLocalPort()  + "]";
     }
 
     public void setReceiveBufferSize(int size) throws SocketException {
--- a/src/java.base/share/classes/sun/nio/ch/ServerSocketChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/ServerSocketChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,10 +27,25 @@
 
 import java.io.FileDescriptor;
 import java.io.IOException;
-import java.net.*;
-import java.nio.channels.*;
-import java.nio.channels.spi.*;
-import java.util.*;
+import java.net.InetSocketAddress;
+import java.net.ProtocolFamily;
+import java.net.ServerSocket;
+import java.net.SocketAddress;
+import java.net.SocketOption;
+import java.net.StandardProtocolFamily;
+import java.net.StandardSocketOptions;
+import java.nio.channels.AlreadyBoundException;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.NotYetBoundException;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
+import java.nio.channels.spi.SelectorProvider;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.locks.ReentrantLock;
+
 import sun.net.NetHooks;
 
 /**
@@ -47,16 +62,13 @@
 
     // Our file descriptor
     private final FileDescriptor fd;
-
-    // fd value needed for dev/poll. This value will remain valid
-    // even after the value in the file descriptor object has been set to -1
-    private int fdVal;
+    private final int fdVal;
 
     // ID of native thread currently blocked in this channel, for signalling
     private volatile long thread;
 
     // Lock held by thread currently blocked in this channel
-    private final Object lock = new Object();
+    private final ReentrantLock acceptLock = new ReentrantLock();
 
     // Lock held by any thread that modifies the state fields declared below
     // DO NOT invoke a blocking I/O operation while holding this lock!
@@ -77,7 +89,7 @@
     private boolean isReuseAddress;
 
     // Our socket adaptor, if any
-    ServerSocket socket;
+    private ServerSocket socket;
 
     // -- End of fields protected by stateLock
 
@@ -211,7 +223,8 @@
 
     @Override
     public ServerSocketChannel bind(SocketAddress local, int backlog) throws IOException {
-        synchronized (lock) {
+        acceptLock.lock();
+        try {
             if (!isOpen())
                 throw new ClosedChannelException();
             if (isBound())
@@ -227,12 +240,15 @@
             synchronized (stateLock) {
                 localAddress = Net.localAddress(fd);
             }
+        } finally {
+            acceptLock.unlock();
         }
         return this;
     }
 
     public SocketChannel accept() throws IOException {
-        synchronized (lock) {
+        acceptLock.lock();
+        try {
             if (!isOpen())
                 throw new ClosedChannelException();
             if (!isBound())
@@ -278,6 +294,8 @@
             }
             return sc;
 
+        } finally {
+            acceptLock.unlock();
         }
     }
 
@@ -353,7 +371,8 @@
     int poll(int events, long timeout) throws IOException {
         assert Thread.holdsLock(blockingLock()) && !isBlocking();
 
-        synchronized (lock) {
+        acceptLock.lock();
+        try {
             int n = 0;
             try {
                 begin();
@@ -368,6 +387,8 @@
                 end(n > 0);
             }
             return n;
+        } finally {
+            acceptLock.unlock();
         }
     }
 
--- a/src/java.base/share/classes/sun/nio/ch/SocketAdaptor.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/SocketAdaptor.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,23 @@
 
 package sun.nio.ch;
 
-import java.io.*;
-import java.net.*;
-import java.nio.*;
-import java.nio.channels.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.SocketAddress;
+import java.net.SocketException;
+import java.net.SocketImpl;
+import java.net.SocketOption;
+import java.net.SocketTimeoutException;
+import java.net.StandardSocketOptions;
+import java.nio.ByteBuffer;
+import java.nio.channels.Channels;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.IllegalBlockingModeException;
+import java.nio.channels.SocketChannel;
 import java.security.AccessController;
 import java.security.PrivilegedExceptionAction;
 import java.util.concurrent.TimeUnit;
@@ -45,7 +58,7 @@
 // java.net.Socket so as to simplify tracking future changes to that class.
 //
 
-public class SocketAdaptor
+class SocketAdaptor
     extends Socket
 {
 
@@ -89,7 +102,6 @@
                 throw new IllegalBlockingModeException();
 
             try {
-
                 if (timeout == 0) {
                     sc.connect(remote);
                     return;
@@ -119,8 +131,9 @@
                         }
                     }
                 } finally {
-                    if (sc.isOpen())
+                    try {
                         sc.configureBlocking(true);
+                    } catch (ClosedChannelException e) { }
                 }
 
             } catch (Exception x) {
@@ -188,10 +201,11 @@
             synchronized (sc.blockingLock()) {
                 if (!sc.isBlocking())
                     throw new IllegalBlockingModeException();
+
                 if (timeout == 0)
                     return sc.read(bb);
+
                 sc.configureBlocking(false);
-
                 try {
                     int n;
                     if ((n = sc.read(bb)) != 0)
@@ -213,10 +227,10 @@
                             throw new SocketTimeoutException();
                     }
                 } finally {
-                    if (sc.isOpen())
+                    try {
                         sc.configureBlocking(true);
+                    } catch (ClosedChannelException e) { }
                 }
-
             }
         }
     }
--- a/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/nio/ch/SocketChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,11 +27,30 @@
 
 import java.io.FileDescriptor;
 import java.io.IOException;
-import java.net.*;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.ProtocolFamily;
+import java.net.Socket;
+import java.net.SocketAddress;
+import java.net.SocketOption;
+import java.net.StandardProtocolFamily;
+import java.net.StandardSocketOptions;
 import java.nio.ByteBuffer;
-import java.nio.channels.*;
-import java.nio.channels.spi.*;
-import java.util.*;
+import java.nio.channels.AlreadyBoundException;
+import java.nio.channels.AlreadyConnectedException;
+import java.nio.channels.AsynchronousCloseException;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.ConnectionPendingException;
+import java.nio.channels.NoConnectionPendingException;
+import java.nio.channels.NotYetConnectedException;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.SocketChannel;
+import java.nio.channels.spi.SelectorProvider;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.locks.ReentrantLock;
+
 import sun.net.NetHooks;
 import sun.net.ext.ExtendedSocketOptions;
 
@@ -49,9 +68,6 @@
 
     // Our file descriptor object
     private final FileDescriptor fd;
-
-    // fd value needed for dev/poll. This value will remain valid
-    // even after the value in the file descriptor object has been set to -1
     private final int fdVal;
 
     // IDs of native threads doing reads and writes, for signalling
@@ -59,10 +75,10 @@
     private volatile long writerThread;
 
     // Lock held by current reading or connecting thread
-    private final Object readLock = new Object();
+    private final ReentrantLock readLock = new ReentrantLock();
 
     // Lock held by current writing or connecting thread
-    private final Object writeLock = new Object();
+    private final ReentrantLock writeLock = new ReentrantLock();
 
     // Lock held by any thread that modifies the state fields declared below
     // DO NOT invoke a blocking I/O operation while holding this lock!
@@ -89,7 +105,6 @@
     // Input/Output open
     private boolean isInputOpen = true;
     private boolean isOutputOpen = true;
-    private boolean readyToConnect = false;
 
     // Socket adaptor, created on demand
     private Socket socket;
@@ -298,7 +313,8 @@
         if (buf == null)
             throw new NullPointerException();
 
-        synchronized (readLock) {
+        readLock.lock();
+        try {
             if (!ensureReadOpen())
                 return -1;
             int n = 0;
@@ -418,6 +434,8 @@
                 assert IOStatus.check(n);
 
             }
+        } finally {
+            readLock.unlock();
         }
     }
 
@@ -426,7 +444,8 @@
     {
         if ((offset < 0) || (length < 0) || (offset > dsts.length - length))
             throw new IndexOutOfBoundsException();
-        synchronized (readLock) {
+        readLock.lock();
+        try {
             if (!ensureReadOpen())
                 return -1;
             long n = 0;
@@ -453,13 +472,16 @@
                 }
                 assert IOStatus.check(n);
             }
+        } finally {
+            readLock.unlock();
         }
     }
 
     public int write(ByteBuffer buf) throws IOException {
         if (buf == null)
             throw new NullPointerException();
-        synchronized (writeLock) {
+        writeLock.lock();
+        try {
             ensureWriteOpen();
             int n = 0;
             try {
@@ -484,6 +506,8 @@
                 }
                 assert IOStatus.check(n);
             }
+        } finally {
+            writeLock.unlock();
         }
     }
 
@@ -492,7 +516,8 @@
     {
         if ((offset < 0) || (length < 0) || (offset > srcs.length - length))
             throw new IndexOutOfBoundsException();
-        synchronized (writeLock) {
+        writeLock.lock();
+        try {
             ensureWriteOpen();
             long n = 0;
             try {
@@ -517,12 +542,15 @@
                 }
                 assert IOStatus.check(n);
             }
+        } finally {
+            writeLock.unlock();
         }
     }
 
     // package-private
     int sendOutOfBandData(byte b) throws IOException {
-        synchronized (writeLock) {
+        writeLock.lock();
+        try {
             ensureWriteOpen();
             int n = 0;
             try {
@@ -547,6 +575,8 @@
                 }
                 assert IOStatus.check(n);
             }
+        } finally {
+            writeLock.unlock();
         }
     }
 
@@ -568,8 +598,10 @@
 
     @Override
     public SocketChannel bind(SocketAddress local) throws IOException {
-        synchronized (readLock) {
-            synchronized (writeLock) {
+        readLock.lock();
+        try {
+            writeLock.lock();
+            try {
                 synchronized (stateLock) {
                     if (!isOpen())
                         throw new ClosedChannelException();
@@ -587,7 +619,11 @@
                     Net.bind(fd, isa.getAddress(), isa.getPort());
                     localAddress = Net.localAddress(fd);
                 }
+            } finally {
+                writeLock.unlock();
             }
+        } finally {
+            readLock.unlock();
         }
         return this;
     }
@@ -616,14 +652,16 @@
     }
 
     public boolean connect(SocketAddress sa) throws IOException {
-        synchronized (readLock) {
-            synchronized (writeLock) {
+        readLock.lock();
+        try {
+            writeLock.lock();
+            try {
                 ensureOpenAndUnconnected();
                 InetSocketAddress isa = Net.checkAddress(sa);
                 SecurityManager sm = System.getSecurityManager();
                 if (sm != null)
                     sm.checkConnect(isa.getAddress().getHostAddress(),
-                                    isa.getPort());
+                            isa.getPort());
                 synchronized (blockingLock()) {
                     int n = 0;
                     try {
@@ -636,8 +674,8 @@
                                 // notify hook only if unbound
                                 if (localAddress == null) {
                                     NetHooks.beforeTcpConnect(fd,
-                                                           isa.getAddress(),
-                                                           isa.getPort());
+                                            isa.getAddress(),
+                                            isa.getPort());
                                 }
                                 readerThread = NativeThread.current();
                             }
@@ -646,10 +684,9 @@
                                 if (ia.isAnyLocalAddress())
                                     ia = InetAddress.getLocalHost();
                                 n = Net.connect(fd,
-                                                ia,
-                                                isa.getPort());
-                                if (  (n == IOStatus.INTERRUPTED)
-                                      && isOpen())
+                                        ia,
+                                        isa.getPort());
+                                if ((n == IOStatus.INTERRUPTED) && isOpen())
                                     continue;
                                 break;
                             }
@@ -686,13 +723,19 @@
                     }
                 }
                 return false;
+            } finally {
+                writeLock.unlock();
             }
+        } finally {
+            readLock.unlock();
         }
     }
 
     public boolean finishConnect() throws IOException {
-        synchronized (readLock) {
-            synchronized (writeLock) {
+        readLock.lock();
+        try {
+            writeLock.lock();
+            try {
                 synchronized (stateLock) {
                     if (!isOpen())
                         throw new ClosedChannelException();
@@ -714,24 +757,20 @@
                             }
                             if (!isBlocking()) {
                                 for (;;) {
-                                    n = checkConnect(fd, false,
-                                                     readyToConnect);
-                                    if (  (n == IOStatus.INTERRUPTED)
-                                          && isOpen())
+                                    n = checkConnect(fd, false);
+                                    if ((n == IOStatus.INTERRUPTED) && isOpen())
                                         continue;
                                     break;
                                 }
                             } else {
                                 for (;;) {
-                                    n = checkConnect(fd, true,
-                                                     readyToConnect);
+                                    n = checkConnect(fd, true);
                                     if (n == 0) {
                                         // Loop in case of
                                         // spurious notifications
                                         continue;
                                     }
-                                    if (  (n == IOStatus.INTERRUPTED)
-                                          && isOpen())
+                                    if ((n == IOStatus.INTERRUPTED) && isOpen())
                                         continue;
                                     break;
                                 }
@@ -769,7 +808,11 @@
                     return true;
                 }
                 return false;
+            } finally {
+                writeLock.unlock();
             }
+        } finally {
+            readLock.unlock();
         }
     }
 
@@ -903,9 +946,6 @@
         if ((ops & (Net.POLLERR | Net.POLLHUP)) != 0) {
             newOps = intOps;
             sk.nioReadyOps(newOps);
-            // No need to poll again in checkConnect,
-            // the error will be detected there
-            readyToConnect = true;
             return (newOps & ~oldOps) != 0;
         }
 
@@ -918,7 +958,6 @@
             ((intOps & SelectionKey.OP_CONNECT) != 0) &&
             ((state == ST_UNCONNECTED) || (state == ST_PENDING))) {
             newOps |= SelectionKey.OP_CONNECT;
-            readyToConnect = true;
         }
 
         if (((ops & Net.POLLOUT) != 0) &&
@@ -942,7 +981,8 @@
     int poll(int events, long timeout) throws IOException {
         assert Thread.holdsLock(blockingLock()) && !isBlocking();
 
-        synchronized (readLock) {
+        readLock.lock();
+        try {
             int n = 0;
             try {
                 begin();
@@ -957,6 +997,8 @@
                 end(n > 0);
             }
             return n;
+        } finally {
+            readLock.unlock();
         }
     }
 
@@ -1024,8 +1066,7 @@
 
     // -- Native methods --
 
-    private static native int checkConnect(FileDescriptor fd,
-                                           boolean block, boolean ready)
+    private static native int checkConnect(FileDescriptor fd, boolean block)
         throws IOException;
 
     private static native int sendOutOfBandData(FileDescriptor fd, byte data)
--- a/src/java.base/share/classes/sun/security/provider/PolicyFile.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/security/provider/PolicyFile.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -580,8 +580,8 @@
                 k.add(policy);
                 return k;
             });
-            Object[] source = {policy, pe.getLocalizedMessage()};
-            System.err.println(LocalizedMessage.getMessage
+            Object[] source = {policy, pe.getNonlocalizedMessage()};
+            System.err.println(LocalizedMessage.getNonlocalized
                 (POLICY + ".error.parsing.policy.message", source));
             if (debug != null) {
                 pe.printStackTrace();
@@ -808,14 +808,14 @@
                     Object[] source = {pe.permission,
                                        ite.getTargetException().toString()};
                     System.err.println(
-                        LocalizedMessage.getMessage(
+                        LocalizedMessage.getNonlocalized(
                             POLICY + ".error.adding.Permission.perm.message",
                             source));
                 } catch (Exception e) {
                     Object[] source = {pe.permission,
                                        e.toString()};
                     System.err.println(
-                        LocalizedMessage.getMessage(
+                        LocalizedMessage.getNonlocalized(
                             POLICY + ".error.adding.Permission.perm.message",
                             source));
                 }
@@ -826,7 +826,7 @@
         } catch (Exception e) {
             Object[] source = {e.toString()};
             System.err.println(
-                LocalizedMessage.getMessage(
+                LocalizedMessage.getNonlocalized(
                     POLICY + ".error.adding.Entry.message",
                     source));
         }
@@ -1803,7 +1803,7 @@
                 if (colonIndex == -1) {
                     Object[] source = {pe.name};
                     throw new Exception(
-                        LocalizedMessage.getMessage(
+                        LocalizedMessage.getNonlocalized(
                             "alias.name.not.provided.pe.name.",
                             source));
                 }
@@ -1811,7 +1811,7 @@
                 if ((suffix = getDN(suffix, keystore)) == null) {
                     Object[] source = {value.substring(colonIndex+1)};
                     throw new Exception(
-                        LocalizedMessage.getMessage(
+                        LocalizedMessage.getNonlocalized(
                             "unable.to.perform.substitution.on.alias.suffix",
                             source));
                 }
@@ -1821,7 +1821,7 @@
             } else {
                 Object[] source = {prefix};
                 throw new Exception(
-                    LocalizedMessage.getMessage(
+                    LocalizedMessage.getNonlocalized(
                         "substitution.value.prefix.unsupported",
                         source));
             }
@@ -2037,7 +2037,7 @@
             super(type);
             if (type == null) {
                 throw new NullPointerException
-                    (LocalizedMessage.getMessage("type.can.t.be.null"));
+                    (LocalizedMessage.getNonlocalized("type.can.t.be.null"));
             }
             this.type = type;
             this.name = name;
--- a/src/java.base/share/classes/sun/security/provider/PolicyParser.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/security/provider/PolicyParser.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -205,8 +205,8 @@
                     if (!domainEntries.containsKey(domainName)) {
                         domainEntries.put(domainName, de);
                     } else {
-                        LocalizedMessage localizedMsg =
-                            new LocalizedMessage("duplicate.keystore.domain.name");
+                        LocalizedMessage localizedMsg = new LocalizedMessage(
+                            "duplicate.keystore.domain.name");
                         Object[] source = {domainName};
                         String msg = "duplicate keystore domain name: " +
                                      domainName;
@@ -220,7 +220,7 @@
         }
 
         if (keyStoreUrlString == null && storePassURL != null) {
-            throw new ParsingException(LocalizedMessage.getMessage
+            throw new ParsingException(LocalizedMessage.getNonlocalized
                 ("keystorePasswordURL.can.not.be.specified.without.also.specifying.keystore"));
         }
     }
@@ -362,7 +362,7 @@
             keyStoreType = match("quoted string");
         } else {
             throw new ParsingException(st.lineno(),
-                LocalizedMessage.getMessage("expected.keystore.type"));
+                LocalizedMessage.getNonlocalized("expected.keystore.type"));
         }
 
         // parse keystore provider
@@ -375,7 +375,7 @@
             keyStoreProvider = match("quoted string");
         } else {
             throw new ParsingException(st.lineno(),
-                LocalizedMessage.getMessage("expected.keystore.provider"));
+                LocalizedMessage.getNonlocalized("expected.keystore.provider"));
         }
     }
 
@@ -425,7 +425,7 @@
                 if (e.codeBase != null)
                     throw new ParsingException(
                             st.lineno(),
-                            LocalizedMessage.getMessage
+                            LocalizedMessage.getNonlocalized
                                 ("multiple.Codebase.expressions"));
                 e.codeBase = match("quoted string");
                 peekAndMatch(",");
@@ -433,7 +433,7 @@
                 if (e.signedBy != null)
                     throw new ParsingException(
                             st.lineno(),
-                            LocalizedMessage.getMessage
+                            LocalizedMessage.getNonlocalized
                                 ("multiple.SignedBy.expressions"));
                 e.signedBy = match("quoted string");
 
@@ -452,7 +452,7 @@
                 if (actr <= cctr)
                     throw new ParsingException(
                             st.lineno(),
-                            LocalizedMessage.getMessage
+                            LocalizedMessage.getNonlocalized
                                 ("SignedBy.has.empty.alias"));
 
                 peekAndMatch(",");
@@ -495,7 +495,7 @@
                         }
                         throw new ParsingException
                                 (st.lineno(),
-                                LocalizedMessage.getMessage
+                                LocalizedMessage.getNonlocalized
                                     ("can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name"));
                     }
                 }
@@ -532,7 +532,7 @@
 
             } else {
                 throw new ParsingException(st.lineno(),
-                    LocalizedMessage.getMessage
+                    LocalizedMessage.getNonlocalized
                         ("expected.codeBase.or.SignedBy.or.Principal"));
             }
         }
@@ -556,7 +556,7 @@
             } else {
                 throw new
                     ParsingException(st.lineno(),
-                        LocalizedMessage.getMessage
+                        LocalizedMessage.getNonlocalized
                             ("expected.permission.entry"));
             }
         }
@@ -733,7 +733,7 @@
         switch (lookahead) {
         case StreamTokenizer.TT_NUMBER:
             throw new ParsingException(st.lineno(), expect,
-                LocalizedMessage.getMessage("number.") +
+                LocalizedMessage.getNonlocalized("number.") +
                     String.valueOf(st.nval));
         case StreamTokenizer.TT_EOF:
             LocalizedMessage localizedMsg = new LocalizedMessage
@@ -826,10 +826,10 @@
             switch (lookahead) {
             case StreamTokenizer.TT_NUMBER:
                 throw new ParsingException(st.lineno(), ";",
-                        LocalizedMessage.getMessage("number.") +
+                        LocalizedMessage.getNonlocalized("number.") +
                             String.valueOf(st.nval));
             case StreamTokenizer.TT_EOF:
-                throw new ParsingException(LocalizedMessage.getMessage
+                throw new ParsingException(LocalizedMessage.getNonlocalized
                         ("expected.read.end.of.file."));
             default:
                 lookahead = st.nextToken();
@@ -987,7 +987,7 @@
          */
         public PrincipalEntry(String principalClass, String principalName) {
             if (principalClass == null || principalName == null)
-                throw new NullPointerException(LocalizedMessage.getMessage
+                throw new NullPointerException(LocalizedMessage.getNonlocalized
                     ("null.principalClass.or.principalName"));
             this.principalClass = principalClass;
             this.principalName = principalName;
@@ -1339,8 +1339,6 @@
 
         public ParsingException(int line, String msg) {
             super("line " + line + ": " + msg);
-            // don't call form.format unless getLocalizedMessage is called
-            // to avoid unnecessary permission checks
             localizedMsg = new LocalizedMessage("line.number.msg");
             source = new Object[] {line, msg};
         }
@@ -1348,16 +1346,14 @@
         public ParsingException(int line, String expect, String actual) {
             super("line " + line + ": expected [" + expect +
                 "], found [" + actual + "]");
-            // don't call form.format unless getLocalizedMessage is called
-            // to avoid unnecessary permission checks
             localizedMsg = new LocalizedMessage
                 ("line.number.expected.expect.found.actual.");
             source = new Object[] {line, expect, actual};
         }
 
-        @Override
-        public String getLocalizedMessage() {
-            return i18nMessage != null ? i18nMessage : localizedMsg.format(source);
+        public String getNonlocalizedMessage() {
+            return i18nMessage != null ? i18nMessage :
+                localizedMsg.formatNonlocalized(source);
         }
     }
 
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_de.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Resources_de.java	Thu Feb 08 22:34:20 2018 -0800
@@ -439,11 +439,11 @@
 
         // 8171319: keytool should print out warnings when reading or
         // generating cert/cert req using weak algorithms
-        {"the.certificate.request", "Die Zertifikatsanforderung"},
+        {"the.certificate.request", "Die Zertifikatanforderung"},
         {"the.issuer", "Der Aussteller"},
         {"the.generated.certificate", "Das generierte Zertifikat"},
         {"the.generated.crl", "Die generierte CRL"},
-        {"the.generated.certificate.request", "Die generierte Zertifikatsanforderung"},
+        {"the.generated.certificate.request", "Die generierte Zertifikatanforderung"},
         {"the.certificate", "Das Zertifikat"},
         {"the.crl", "Die CRL"},
         {"the.tsa.certificate", "Das TSA-Zertifikat"},
@@ -459,7 +459,7 @@
         {".PATTERN.printX509Cert.with.weak",
                 "Eigent\u00FCmer: {0}\nAussteller: {1}\nSeriennummer: {2}\nG\u00FCltig von: {3} bis: {4}\nZertifikatsfingerprints:\n\t SHA1: {5}\n\t SHA256: {6}\nSignaturalgorithmusname: {7}\nPublic Key-Algorithmus von Subject: {8}\nVersion: {9}"},
         {"PKCS.10.with.weak",
-                "PKCS #10-Zertifikatsanforderung (Version 1.0)\nSubject: %1$s\nFormat: %2$s\nPublic Key: %3$s\nSignaturalgorithmus: %4$s\n"},
+                "PKCS #10-Zertifikatanforderung (Version 1.0)\nSubject: %1$s\nFormat: %2$s\nPublic Key: %3$s\nSignaturalgorithmus: %4$s\n"},
         {"verified.by.s.in.s.weak", "Von %1$s in %2$s mit %3$s verifiziert"},
         {"whose.sigalg.risk", "%1$s verwendet den Signaturalgorithmus %2$s. Dies gilt als Sicherheitsrisiko."},
         {"whose.key.risk", "%1$s verwendet %2$s. Dies gilt als Sicherheitsrisiko."},
--- a/src/java.base/share/classes/sun/security/util/LocalizedMessage.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/security/util/LocalizedMessage.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@
 
 public class LocalizedMessage {
 
-    private static final Resources resources = new Resources();
+    private static final Resources RESOURCES = new Resources();
 
     private final String key;
 
@@ -59,16 +59,28 @@
 
     /**
      * Return a localized string corresponding to the key stored in this
-     * object, formatted with the provided arguments. When the VM is booted,
-     * this method will obtain the correct localized message and format it
-     * using java.text.MessageFormat. Otherwise, a non-localized string is
-     * returned, and the formatting is performed by simplified formatting code.
+     * object, formatted with the provided arguments. This method should only
+     * be called when the VM is booted and all resources needed to obtain
+     * and format the localized message are loaded (or can be loaded).
      *
      * @param arguments The arguments that should be placed in the message
      * @return A formatted message string
      */
-    public String format(Object... arguments) {
-        return getMessage(key, arguments);
+    public String formatLocalized(Object... arguments) {
+        return getLocalized(key, arguments);
+    }
+
+    /**
+     * Return a non-localized string corresponding to the key stored in this
+     * object, formatted with the provided arguments. All strings are obtained
+     * from sun.security.util.Resources, and the formatting only supports
+     * simple positional argument replacement (e.g. {1}).
+     *
+     * @param arguments The arguments that should be placed in the message
+     * @return A formatted message string
+     */
+    public String formatNonlocalized(Object... arguments) {
+        return getNonlocalized(key, arguments);
     }
 
     /**
@@ -81,10 +93,10 @@
      * @param arguments The arguments that should be placed in the message
      * @return A formatted message string
      */
-    public static String getMessageUnbooted(String key,
-                                            Object... arguments) {
+    public static String getNonlocalized(String key,
+                                                Object... arguments) {
 
-        String value = resources.getString(key);
+        String value = RESOURCES.getString(key);
         if (arguments == null || arguments.length == 0) {
             return value;
         }
@@ -110,8 +122,7 @@
             try {
                 int index = Integer.parseInt(indexStr);
                 sb.append(arguments[index]);
-            }
-            catch(NumberFormatException e) {
+            } catch (NumberFormatException e) {
                 // argument index is not an integer
                 throw new RuntimeException("not an integer: " + indexStr);
             }
@@ -123,29 +134,22 @@
 
     /**
      * Return a localized string corresponding to the provided key, and
-     * formatted with the provided arguments. When the VM is booted, this
-     * method will obtain the correct localized message and format it using
-     * java.text.MessageFormat. Otherwise, a non-localized string is returned,
-     * and the formatting is performed by simplified formatting code.
+     * formatted with the provided arguments. This method should only be
+     * called when the VM is booted and all resources needed to obtain
+     * and format the localized message are loaded (or can be loaded).
      *
      * @param key The key of the desired string in the security resource bundle
      * @param arguments The arguments that should be placed in the message
      * @return A formatted message string
      */
-    public static String getMessage(String key,
-                                    Object... arguments) {
+    public static String getLocalized(String key, Object... arguments) {
 
-        if (jdk.internal.misc.VM.isBooted()) {
-            // Localization and formatting resources are available
-            String value = ResourcesMgr.getString(key);
-            if (arguments == null) {
-                return value;
-            }
-            java.text.MessageFormat form = new java.text.MessageFormat(value);
-            return form.format(arguments);
-        } else {
-            return getMessageUnbooted(key, arguments);
+        String value = ResourcesMgr.getString(key);
+        if (arguments == null) {
+            return value;
         }
+        java.text.MessageFormat form = new java.text.MessageFormat(value);
+        return form.format(arguments);
     }
 
 }
--- a/src/java.base/share/classes/sun/util/locale/BaseLocale.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/util/locale/BaseLocale.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -31,8 +31,8 @@
  */
 
 package sun.util.locale;
+
 import java.lang.ref.SoftReference;
-
 import java.util.StringJoiner;
 
 public final class BaseLocale {
@@ -48,26 +48,28 @@
 
     private volatile int hash;
 
-    // This method must be called only when creating the Locale.* constants.
-    private BaseLocale(String language, String region) {
-        this.language = language;
-        this.script = "";
-        this.region = region;
-        this.variant = "";
-    }
-
-    private BaseLocale(String language, String script, String region, String variant) {
-        this.language = (language != null) ? LocaleUtils.toLowerString(language).intern() : "";
-        this.script = (script != null) ? LocaleUtils.toTitleString(script).intern() : "";
-        this.region = (region != null) ? LocaleUtils.toUpperString(region).intern() : "";
-        this.variant = (variant != null) ? variant.intern() : "";
+    // This method must be called with normalize = false only when creating the
+    // Locale.* constants and non-normalized BaseLocale$Keys used for lookup.
+    private BaseLocale(String language, String script, String region, String variant,
+                       boolean normalize) {
+        if (normalize) {
+            this.language = LocaleUtils.toLowerString(language).intern();
+            this.script = LocaleUtils.toTitleString(script).intern();
+            this.region = LocaleUtils.toUpperString(region).intern();
+            this.variant = variant.intern();
+        } else {
+            this.language = language;
+            this.script = script;
+            this.region = region;
+            this.variant = variant;
+        }
     }
 
     // Called for creating the Locale.* constants. No argument
     // validation is performed.
     public static BaseLocale createInstance(String language, String region) {
-        BaseLocale base = new BaseLocale(language, region);
-        CACHE.put(new Key(language, region), base);
+        BaseLocale base = new BaseLocale(language, "", region, "", false);
+        CACHE.put(new Key(base), base);
         return base;
     }
 
@@ -84,7 +86,7 @@
             }
         }
 
-        Key key = new Key(language, script, region, variant);
+        Key key = new Key(language, script, region, variant, false);
         BaseLocale baseLocale = CACHE.get(key);
         return baseLocale;
     }
@@ -123,16 +125,16 @@
     @Override
     public String toString() {
         StringJoiner sj = new StringJoiner(", ");
-        if (language.length() > 0) {
+        if (!language.isEmpty()) {
             sj.add("language=" + language);
         }
-        if (script.length() > 0) {
+        if (!script.isEmpty()) {
             sj.add("script=" + script);
         }
-        if (region.length() > 0) {
+        if (!region.isEmpty()) {
             sj.add("region=" + region);
         }
-        if (variant.length() > 0) {
+        if (!variant.isEmpty()) {
             sj.add("variant=" + variant);
         }
         return sj.toString();
@@ -155,10 +157,17 @@
     }
 
     private static final class Key {
-        private final SoftReference<String> lang;
-        private final SoftReference<String> scrt;
-        private final SoftReference<String> regn;
-        private final SoftReference<String> vart;
+        /**
+         * Keep a SoftReference to the Key data if normalized (actually used
+         * as a cache key) and not initialized via the constant creation path.
+         *
+         * This allows us to avoid creating SoftReferences on lookup Keys
+         * (which are short-lived) and for Locales created via
+         * Locale#createConstant.
+         */
+        private final SoftReference<BaseLocale> holderRef;
+        private final BaseLocale holder;
+
         private final boolean normalized;
         private final int hash;
 
@@ -166,15 +175,16 @@
          * Creates a Key. language and region must be normalized
          * (intern'ed in the proper case).
          */
-        private Key(String language, String region) {
-            assert language.intern() == language
-                   && region.intern() == region;
-
-            lang = new SoftReference<>(language);
-            scrt = new SoftReference<>("");
-            regn = new SoftReference<>(region);
-            vart = new SoftReference<>("");
+        private Key(BaseLocale locale) {
+            this.holder = locale;
+            this.holderRef = null;
             this.normalized = true;
+            String language = locale.getLanguage();
+            String region = locale.getRegion();
+            assert LocaleUtils.toLowerString(language).intern() == language
+                    && LocaleUtils.toUpperString(region).intern() == region
+                    && locale.getVariant() == ""
+                    && locale.getScript() == "";
 
             int h = language.hashCode();
             if (region != "") {
@@ -186,51 +196,64 @@
             hash = h;
         }
 
-        public Key(String language, String script, String region, String variant) {
-            this(language, script, region, variant, false);
+        private Key(String language, String script, String region,
+                    String variant, boolean normalize) {
+            if (language == null) {
+                language = "";
+            }
+            if (script == null) {
+                script = "";
+            }
+            if (region == null) {
+                region = "";
+            }
+            if (variant == null) {
+                variant = "";
+            }
+
+            BaseLocale locale = new BaseLocale(language, script, region, variant, normalize);
+            this.normalized = normalize;
+            if (normalized) {
+                this.holderRef = new SoftReference<>(locale);
+                this.holder = null;
+            } else {
+                this.holderRef = null;
+                this.holder = locale;
+            }
+            this.hash = hashCode(locale);
         }
 
-        private Key(String language, String script, String region,
-                    String variant, boolean normalized) {
+        public int hashCode() {
+            return hash;
+        }
+
+        private int hashCode(BaseLocale locale) {
             int h = 0;
-            if (language != null) {
-                lang = new SoftReference<>(language);
-                int len = language.length();
-                for (int i = 0; i < len; i++) {
-                    h = 31*h + LocaleUtils.toLower(language.charAt(i));
-                }
-            } else {
-                lang = new SoftReference<>("");
+            String lang = locale.getLanguage();
+            int len = lang.length();
+            for (int i = 0; i < len; i++) {
+                h = 31*h + LocaleUtils.toLower(lang.charAt(i));
             }
-            if (script != null) {
-                scrt = new SoftReference<>(script);
-                int len = script.length();
-                for (int i = 0; i < len; i++) {
-                    h = 31*h + LocaleUtils.toLower(script.charAt(i));
-                }
-            } else {
-                scrt = new SoftReference<>("");
+            String scrt = locale.getScript();
+            len = scrt.length();
+            for (int i = 0; i < len; i++) {
+                h = 31*h + LocaleUtils.toLower(scrt.charAt(i));
             }
-            if (region != null) {
-                regn = new SoftReference<>(region);
-                int len = region.length();
-                for (int i = 0; i < len; i++) {
-                    h = 31*h + LocaleUtils.toLower(region.charAt(i));
-                }
-            } else {
-                regn = new SoftReference<>("");
+            String regn = locale.getRegion();
+            len = regn.length();
+            for (int i = 0; i < len; i++) {
+                h = 31*h + LocaleUtils.toLower(regn.charAt(i));
             }
-            if (variant != null) {
-                vart = new SoftReference<>(variant);
-                int len = variant.length();
-                for (int i = 0; i < len; i++) {
-                    h = 31*h + variant.charAt(i);
-                }
-            } else {
-                vart = new SoftReference<>("");
+            String vart = locale.getVariant();
+            len = vart.length();
+            for (int i = 0; i < len; i++) {
+                h = 31*h + vart.charAt(i);
             }
-            hash = h;
-            this.normalized = normalized;
+            return h;
+        }
+
+        private BaseLocale getBaseLocale() {
+            return (holder == null) ? holderRef.get() : holder;
         }
 
         @Override
@@ -238,46 +261,31 @@
             if (this == obj) {
                 return true;
             }
-
             if (obj instanceof Key && this.hash == ((Key)obj).hash) {
-                String tl = this.lang.get();
-                String ol = ((Key)obj).lang.get();
-                if (tl != null && ol != null &&
-                    LocaleUtils.caseIgnoreMatch(ol, tl)) {
-                    String ts = this.scrt.get();
-                    String os = ((Key)obj).scrt.get();
-                    if (ts != null && os != null &&
-                        LocaleUtils.caseIgnoreMatch(os, ts)) {
-                        String tr = this.regn.get();
-                        String or = ((Key)obj).regn.get();
-                        if (tr != null && or != null &&
-                            LocaleUtils.caseIgnoreMatch(or, tr)) {
-                            String tv = this.vart.get();
-                            String ov = ((Key)obj).vart.get();
-                            return (ov != null && ov.equals(tv));
-                        }
-                    }
+                BaseLocale other = ((Key) obj).getBaseLocale();
+                BaseLocale locale = this.getBaseLocale();
+                if (other != null && locale != null
+                    && LocaleUtils.caseIgnoreMatch(other.getLanguage(), locale.getLanguage())
+                    && LocaleUtils.caseIgnoreMatch(other.getScript(), locale.getScript())
+                    && LocaleUtils.caseIgnoreMatch(other.getRegion(), locale.getRegion())
+                    // variant is case sensitive in JDK!
+                    && other.getVariant().equals(locale.getVariant())) {
+                    return true;
                 }
             }
             return false;
         }
 
-        @Override
-        public int hashCode() {
-            return hash;
-        }
-
         public static Key normalize(Key key) {
             if (key.normalized) {
                 return key;
             }
 
-            String lang = LocaleUtils.toLowerString(key.lang.get()).intern();
-            String scrt = LocaleUtils.toTitleString(key.scrt.get()).intern();
-            String regn = LocaleUtils.toUpperString(key.regn.get()).intern();
-            String vart = key.vart.get().intern(); // preserve upper/lower cases
-
-            return new Key(lang, scrt, regn, vart, true);
+            // Only normalized keys may be softly referencing the data holder
+            assert (key.holder != null && key.holderRef == null);
+            BaseLocale locale = key.holder;
+            return new Key(locale.getLanguage(), locale.getScript(),
+                    locale.getRegion(), locale.getVariant(), true);
         }
     }
 
@@ -288,18 +296,12 @@
 
         @Override
         protected Key normalizeKey(Key key) {
-            assert key.lang.get() != null &&
-                   key.scrt.get() != null &&
-                   key.regn.get() != null &&
-                   key.vart.get() != null;
-
             return Key.normalize(key);
         }
 
         @Override
         protected BaseLocale createObject(Key key) {
-            return new BaseLocale(key.lang.get(), key.scrt.get(),
-                                  key.regn.get(), key.vart.get());
+            return Key.normalize(key).getBaseLocale();
         }
     }
 }
--- a/src/java.base/share/classes/sun/util/locale/LocaleObjectCache.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/share/classes/sun/util/locale/LocaleObjectCache.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -37,8 +37,8 @@
 import java.util.concurrent.ConcurrentMap;
 
 public abstract class LocaleObjectCache<K, V> {
-    private ConcurrentMap<K, CacheEntry<K, V>> map;
-    private ReferenceQueue<V> queue = new ReferenceQueue<>();
+    private final ConcurrentMap<K, CacheEntry<K, V>> map;
+    private final ReferenceQueue<V> queue = new ReferenceQueue<>();
 
     public LocaleObjectCache() {
         this(16, 0.75f, 16);
@@ -57,17 +57,14 @@
             value = entry.get();
         }
         if (value == null) {
+            key = normalizeKey(key);
             V newVal = createObject(key);
-            // make sure key is normalized *after* the object creation
-            // so that newVal is assured to be created from a valid key.
-            key = normalizeKey(key);
             if (key == null || newVal == null) {
                 // subclass must return non-null key/value object
                 return null;
             }
 
             CacheEntry<K, V> newEntry = new CacheEntry<>(key, newVal, queue);
-
             entry = map.putIfAbsent(key, newEntry);
             if (entry == null) {
                 value = newVal;
@@ -92,7 +89,7 @@
     private void cleanStaleEntries() {
         CacheEntry<K, V> entry;
         while ((entry = (CacheEntry<K, V>)queue.poll()) != null) {
-            map.remove(entry.getKey());
+            map.remove(entry.getKey(), entry);
         }
     }
 
--- a/src/java.base/unix/classes/sun/nio/ch/SinkChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/unix/classes/sun/nio/ch/SinkChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,14 @@
 
 package sun.nio.ch;
 
-import java.io.*;
+import java.io.FileDescriptor;
+import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.nio.channels.*;
-import java.nio.channels.spi.*;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.Pipe;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.spi.SelectorProvider;
+import java.util.concurrent.locks.ReentrantLock;
 
 
 class SinkChannelImpl
@@ -40,17 +44,17 @@
     private static final NativeDispatcher nd = new FileDispatcherImpl();
 
     // The file descriptor associated with this channel
-    FileDescriptor fd;
+    private final FileDescriptor fd;
 
     // fd value needed for dev/poll. This value will remain valid
     // even after the value in the file descriptor object has been set to -1
-    int fdVal;
+    private final int fdVal;
 
     // ID of native thread doing write, for signalling
     private volatile long thread;
 
-    // Lock held by current reading thread
-    private final Object lock = new Object();
+    // Lock held by current writing thread
+    private final ReentrantLock writeLock = new ReentrantLock();
 
     // Lock held by any thread that modifies the state fields declared below
     // DO NOT invoke a blocking I/O operation while holding this lock!
@@ -155,8 +159,9 @@
     }
 
     public int write(ByteBuffer src) throws IOException {
-        ensureOpen();
-        synchronized (lock) {
+        writeLock.lock();
+        try {
+            ensureOpen();
             int n = 0;
             try {
                 begin();
@@ -172,14 +177,18 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            writeLock.unlock();
         }
     }
 
     public long write(ByteBuffer[] srcs) throws IOException {
         if (srcs == null)
             throw new NullPointerException();
-        ensureOpen();
-        synchronized (lock) {
+
+        writeLock.lock();
+        try {
+            ensureOpen();
             long n = 0;
             try {
                 begin();
@@ -195,6 +204,8 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            writeLock.unlock();
         }
     }
 
--- a/src/java.base/unix/classes/sun/nio/ch/SourceChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/unix/classes/sun/nio/ch/SourceChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -25,10 +25,14 @@
 
 package sun.nio.ch;
 
-import java.io.*;
+import java.io.FileDescriptor;
+import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.nio.channels.*;
-import java.nio.channels.spi.*;
+import java.nio.channels.ClosedChannelException;
+import java.nio.channels.Pipe;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.spi.SelectorProvider;
+import java.util.concurrent.locks.ReentrantLock;
 
 
 class SourceChannelImpl
@@ -40,17 +44,17 @@
     private static final NativeDispatcher nd = new FileDispatcherImpl();
 
     // The file descriptor associated with this channel
-    FileDescriptor fd;
+    private final FileDescriptor fd;
 
     // fd value needed for dev/poll. This value will remain valid
     // even after the value in the file descriptor object has been set to -1
-    int fdVal;
+    private final int fdVal;
 
     // ID of native thread doing read, for signalling
     private volatile long thread;
 
     // Lock held by current reading thread
-    private final Object lock = new Object();
+    private final ReentrantLock readLock = new ReentrantLock();
 
     // Lock held by any thread that modifies the state fields declared below
     // DO NOT invoke a blocking I/O operation while holding this lock!
@@ -155,8 +159,10 @@
     }
 
     public int read(ByteBuffer dst) throws IOException {
-        ensureOpen();
-        synchronized (lock) {
+
+        readLock.lock();
+        try {
+            ensureOpen();
             int n = 0;
             try {
                 begin();
@@ -172,6 +178,8 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            readLock.unlock();
         }
     }
 
@@ -186,8 +194,10 @@
     public long read(ByteBuffer[] dsts) throws IOException {
         if (dsts == null)
             throw new NullPointerException();
-        ensureOpen();
-        synchronized (lock) {
+
+        readLock.lock();
+        try {
+            ensureOpen();
             long n = 0;
             try {
                 begin();
@@ -203,6 +213,8 @@
                 end((n > 0) || (n == IOStatus.UNAVAILABLE));
                 assert IOStatus.check(n);
             }
+        } finally {
+            readLock.unlock();
         }
     }
 }
--- a/src/java.base/unix/native/libnio/ch/SocketChannelImpl.c	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/unix/native/libnio/ch/SocketChannelImpl.c	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,8 +47,7 @@
 
 JNIEXPORT jint JNICALL
 Java_sun_nio_ch_SocketChannelImpl_checkConnect(JNIEnv *env, jobject this,
-                                               jobject fdo, jboolean block,
-                                               jboolean ready)
+                                               jobject fdo, jboolean block)
 {
     int error = 0;
     socklen_t n = sizeof(int);
@@ -56,19 +55,16 @@
     int result = 0;
     struct pollfd poller;
 
-    poller.revents = 1;
-    if (!ready) {
-        poller.fd = fd;
-        poller.events = POLLOUT;
-        poller.revents = 0;
-        result = poll(&poller, 1, block ? -1 : 0);
-        if (result < 0) {
-            JNU_ThrowIOExceptionWithLastError(env, "Poll failed");
-            return IOS_THROWN;
-        }
-        if (!block && (result == 0))
-            return IOS_UNAVAILABLE;
+    poller.fd = fd;
+    poller.events = POLLOUT;
+    poller.revents = 0;
+    result = poll(&poller, 1, block ? -1 : 0);
+    if (result < 0) {
+        JNU_ThrowIOExceptionWithLastError(env, "Poll failed");
+        return IOS_THROWN;
     }
+    if (!block && (result == 0))
+       return IOS_UNAVAILABLE;
 
     if (poller.revents) {
         errno = 0;
--- a/src/java.base/windows/classes/sun/nio/ch/SinkChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/windows/classes/sun/nio/ch/SinkChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,7 @@
     implements SelChImpl
 {
     // The SocketChannel assoicated with this pipe
-    SocketChannel sc;
+    final SocketChannel sc;
 
     public FileDescriptor getFD() {
         return ((SocketChannelImpl)sc).getFD();
--- a/src/java.base/windows/classes/sun/nio/ch/SourceChannelImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/windows/classes/sun/nio/ch/SourceChannelImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@
     implements SelChImpl
 {
     // The SocketChannel assoicated with this pipe
-    SocketChannel sc;
+    private final SocketChannel sc;
 
     public FileDescriptor getFD() {
         return ((SocketChannelImpl) sc).getFD();
--- a/src/java.base/windows/native/libnet/net_util_md.c	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/windows/native/libnet/net_util_md.c	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -525,7 +525,7 @@
     int len = sizeof (l);
     if (getsockopt(fd, SOL_SOCKET, SO_LINGER, (char *)&l, &len) == 0) {
         if (l.l_onoff == 0) {
-            WSASendDisconnect(fd, NULL);
+            shutdown(fd, SD_SEND);
         }
     }
     ret = closesocket (fd);
--- a/src/java.base/windows/native/libnio/ch/SocketChannelImpl.c	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/windows/native/libnio/ch/SocketChannelImpl.c	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -55,8 +55,7 @@
 
 JNIEXPORT jint JNICALL
 Java_sun_nio_ch_SocketChannelImpl_checkConnect(JNIEnv *env, jobject this,
-                                               jobject fdo, jboolean block,
-                                               jboolean ready)
+                                               jobject fdo, jboolean block)
 {
     int optError = 0;
     int lastError = 0;
--- a/src/java.base/windows/native/libnio/ch/SocketDispatcher.c	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.base/windows/native/libnio/ch/SocketDispatcher.c	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -272,7 +272,7 @@
     int len = sizeof(l);
     if (getsockopt(fd, SOL_SOCKET, SO_LINGER, (char *)&l, &len) == 0) {
         if (l.l_onoff == 0) {
-            WSASendDisconnect(fd, NULL);
+            shutdown(fd, SD_SEND);
         }
     }
 }
--- a/src/java.desktop/macosx/native/libosxapp/NSApplicationAWT.m	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.desktop/macosx/native/libosxapp/NSApplicationAWT.m	Thu Feb 08 22:34:20 2018 -0800
@@ -342,9 +342,7 @@
 
 #define DRAGMASK (NSMouseMovedMask | NSLeftMouseDraggedMask | NSRightMouseDownMask | NSRightMouseDraggedMask | NSLeftMouseUpMask | NSRightMouseUpMask | NSFlagsChangedMask | NSKeyDownMask)
 
-#if defined(MAC_OS_X_VERSION_10_12) && \
-   MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12 && \
-   __LP64__
+#if defined(MAC_OS_X_VERSION_10_12) && __LP64__
    // 10.12 changed `mask` to NSEventMask (unsigned long long) for x86_64 builds.
 - (NSEvent *)nextEventMatchingMask:(NSEventMask)mask
 #else
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/java.desktop/macosx/native/libsplashscreen/libpng/zlib.h	Thu Feb 08 22:34:20 2018 -0800
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * This header file is used to hijack the include of "zlib.h" from libpng on
+ * Macos. We do that to be able to build on macos 10.13 or later, but still
+ * keep binary compatibility with older versions (as specified to configure).
+ *
+ * The problem is that in 10.13, Macos shipped with a newer version of zlib,
+ * which exports the function inflateValidate. There is a call to this
+ * function in pngrutil.c, guarded by a preprocessor check of ZLIB_VERNUM being
+ * high enough. If we compile this call in and link to the newer version of
+ * zlib, we will get link errors if the code is executed on an older Mac with
+ * an older version of zlib.
+ *
+ * The zlib.h header in Macos has been annotated with Macos specific macros that
+ * guard these kinds of version specific APIs, but libpng is not using those
+ * checks in its conditionals, just ZLIB_VERNUM. To fix this, we check for the
+ * MAC_OS_X_VERSION_MIN_REQUIRED macro here and adjust the ZLIB_VERNUM to the
+ # known version bundled with that release. This solution is certainly a hack,
+ * but it seems the affected versions of zlib.h are compatible enough for this
+ * to work.
+ */
+
+#include <zlib.h>
+#include <AvailabilityMacros.h>
+
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12
+#  undef ZLIB_VERNUM
+#  define ZLIB_VERNUM 0x1250
+#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_13
+#  undef ZLIB_VERNUM
+#  define ZLIB_VERNUM 0x1280
+#endif
--- a/src/java.desktop/share/legal/harfbuzz.md	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.desktop/share/legal/harfbuzz.md	Thu Feb 08 22:34:20 2018 -0800
@@ -1,4 +1,4 @@
-## Harfbuzz v1.3.0
+## Harfbuzz v1.7.1
 
 ### Harfbuzz License
 
@@ -6,21 +6,20 @@
 
 <pre>
 
-HarfBuzz is licensed under the so-called "Old MIT" license.  Details follow.
+HarfBuzz is licensed under the so-called "Old MIT" license. Details follow.
 For parts of HarfBuzz that are licensed under different licenses see individual
 files names COPYING in subdirectories where applicable.
 
-Copyright © 2010,2011,2012, 2013  Google, Inc.
-Copyright © 2012, 2013  Mozilla Foundation
+Copyright © 2010,2011,2012  Google, Inc.
+Copyright © 2012  Mozilla Foundation
 Copyright © 2011  Codethink Limited
 Copyright © 2008,2010  Nokia Corporation and/or its subsidiary(-ies)
 Copyright © 2009  Keith Stribley
-Copyright (C) 2012 Grigori Goronzy <greg@kinoho.net>
-Copyright © 2009, 2011  Martin Hosken and SIL International
+Copyright © 2009  Martin Hosken and SIL International
 Copyright © 2007  Chris Wilson
 Copyright © 2006  Behdad Esfahbod
 Copyright © 2005  David Turner
-Copyright © 2004,2007,2008,2009,2010, 2013  Red Hat, Inc.
+Copyright © 2004,2007,2008,2009,2010  Red Hat, Inc.
 Copyright © 1998-2004  David Turner and Werner Lemberg
 
 For full copyright notices consult the individual files in the package.
@@ -44,10 +43,12 @@
 ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
 PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 
-All source code, except for one section, is licensed as above.   The one
+All source code, except for one section, is licensed as above. The one
 exception is licensed with a slightly different MIT variant:
 The contents of this directory are licensed under the following terms:
 
+Copyright (C) 2012 Grigori Goronzy <greg@kinoho.net>
+
 Permission to use, copy, modify, and/or distribute this software for any
 purpose with or without fee is hereby granted, provided that the above
 copyright notice and this permission notice appear in all copies.
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: Die Gesamtanzahl von Knoten in Entityreferenzen betr\u00E4gt "{0}". Das liegt \u00FCber dem von "{2}" festgelegten Grenzwert "{1}".
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: CatalogResolver ist mit dem Katalog "{0}" aktiviert, eine CatalogException wird jedoch zur\u00FCckgegeben.
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: El n\u00FAmero total de nodos en las referencias de entidad es de "{0}" que supera el l\u00EDmite de "{1}" definido por "{2}".
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: CatalogResolver est\u00E1 activado con el cat\u00E1logo "{0}", pero se ha devuelto una excepci\u00F3n CatalogException.
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007 : Le nombre total de noeuds dans les r\u00E9f\u00E9rences d''entit\u00E9 est "{0}", soit plus que la limite de "{1}" d\u00E9finie par "{2}".
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001 : le CatalogResolver est activ\u00E9 avec le catalogue "{0}", mais une exception CatalogException est renvoy\u00E9e.
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: il numero totale di nodi nei riferimenti entit\u00E0 \u00E8 "{0}". Tale valore supera il limite di "{1}" impostato da "{2}".
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: il CatalogResolver \u00E8 abilitato con il catalogo "{0}", ma viene restituita una CatalogException.
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u53C2\u7167\u306E\u5408\u8A08\u30CE\u30FC\u30C9\u6570\u306F"{0}"\u3067\u3001"{2}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{1}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: CatalogResolver\u306F\u30AB\u30BF\u30ED\u30B0"{0}"\u3067\u6709\u52B9\u3067\u3059\u304C\u3001CatalogException\u304C\u8FD4\u3055\u308C\u307E\u3059\u3002
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: \uC5D4\uD2F0\uD2F0 \uCC38\uC870\uC758 \uCD1D \uB178\uB4DC \uC218\uAC00 "{2}"\uC5D0\uC11C \uC124\uC815\uD55C "{1}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{0}"\uC785\uB2C8\uB2E4.
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: CatalogResolver\uAC00 "{0}" \uCE74\uD0C8\uB85C\uADF8\uC5D0 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uB418\uC5C8\uC9C0\uB9CC CatalogException\uC774 \uBC18\uD658\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: O n\u00FAmero total de n\u00F3s nas refer\u00EAncias da entidade \u00E9 de "{0}", o que est\u00E1 acima do limite de "{1}" definido por "{2}".
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: O CatalogResolver foi ativado com o cat\u00E1logo "{0}", mas uma CatalogException foi retornada.
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: Det totala antalet noder i enhetsreferenser \u00E4r "{0}", vilket \u00E4r \u00F6ver gr\u00E4nsen "{1}" som har angetts av "{2}".
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: CatalogResolver \u00E4r aktiverat med katalogen "{0}", men ett CatalogException returneras.
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: \u5B9E\u4F53\u5F15\u7528\u4E2D\u7684\u8282\u70B9\u603B\u6570\u4E3A "{0}", \u8D85\u8FC7\u4E86 "{2}" \u8BBE\u7F6E\u7684\u9650\u5236 "{1}"\u3002
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: \u5DF2\u5BF9\u76EE\u5F55 "{0}" \u542F\u7528 CatalogResolver, \u4F46\u8FD4\u56DE\u4E86 CatalogException\u3002
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -304,4 +304,5 @@
         EntityReplacementLimit=JAXP00010007: \u5BE6\u9AD4\u53C3\u7167\u4E2D\u7684\u7BC0\u9EDE\u7E3D\u6578\u70BA "{0}"\uFF0C\u8D85\u904E "{2}" \u6240\u8A2D\u5B9A\u7684 "{1}" \u9650\u5236\u3002
 
 # Catalog 09
+# Technical term, do not translate: catalog
         CatalogException=JAXP00090001: CatalogResolver \u5DF2\u555F\u7528\u76EE\u9304 "{0}"\uFF0C\u4F46\u50B3\u56DE CatalogException\u3002
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_de.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_de.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,6 +30,7 @@
 CircularReference = JAXP09010001: Zirkelbezug ist nicht zul\u00E4ssig: "{0}".
 
 # Input or configuration errors
+# Technical term, do not translate: catalog
 InvalidCatalog = JAXP09020001: Das Dokumentelement eines Katalogs muss ein Katalog sein.
 InvalidEntryType = JAXP09020002: Der Eintragstyp "{0}" ist nicht g\u00FCltig.
 UriNotAbsolute = JAXP09020003: Die angegebene URI "{0}" ist nicht absolut.
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: Unerwarteter Fehler bei der Konfiguration eines SAX-Parsers.
+# Technical term, do not translate: catalog
 ParsingFailed = JAXP09030002: Die Katalogdatei konnte nicht geparst werden.
+# Technical term, do not translate: catalog
 NoCatalogFound = JAXP09030003: Kein Katalog angegeben.
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: Keine \u00DCbereinstimmung f\u00FCr publicId "{0}" und systemId "{1}" gefunden.
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: Keine \u00DCbereinstimmung f\u00FCr href "{0}" und base "{1}" gefunden.
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: URI kann nicht mit href "{0}" und base "{1}" erstellt werden.
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_es.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_es.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,7 +30,8 @@
 CircularReference = JAXP09010001: No est\u00E1 permitida la referencia circular: ''{0}''.
 
 # Input or configuration errors
-InvalidCatalog = JAXP09020001: El elemento de documento de un cat\u00E1logo debe ser un cat\u00E1logo.
+# Technical term, do not translate: catalog
+InvalidCatalog = JAXP09020001: El elemento de documento de un cat\u00E1logo debe ser "catalog".
 InvalidEntryType = JAXP09020002: El tipo de entrada ''{0}'' no es v\u00E1lido.
 UriNotAbsolute = JAXP09020003: El URI especificado ''{0}'' no es absoluto.
 UriNotValidUrl = JAXP09020004: El URI especificado ''{0}'' no es una URL v\u00E1lida.
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: Error inesperado al configurar el analizador SAX.
+# Technical term, do not translate: catalog
 ParsingFailed = JAXP09030002: Fallo al analizar el archivo de cat\u00E1logo.
+# Technical term, do not translate: catalog
 NoCatalogFound = JAXP09030003: No se ha especificado ning\u00FAn cat\u00E1logo.
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: No se ha encontrado ninguna coincidencia para publicId ''{0}'' y systemId ''{1}''.
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: No se ha encontrado ninguna coincidencia para href ''{0}'' y base ''{1}''.
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: No se puede crear el URI con href ''{0}'' y base ''{1}''.
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_fr.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_fr.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,7 +30,8 @@
 CircularReference = JAXP09010001 : La r\u00E9f\u00E9rence circulaire n''est pas autoris\u00E9e : ''{0}''.
 
 # Input or configuration errors
-InvalidCatalog = JAXP09020001 : L'\u00E9l\u00E9ment de document d'un catalogue doit \u00EAtre un catalogue.
+# Technical term, do not translate: catalog
+InvalidCatalog = JAXP09020001 : L'\u00E9l\u00E9ment de document d'un catalogue doit \u00EAtre CATALOG.
 InvalidEntryType = JAXP09020002 : Le type d''entr\u00E9e ''{0}'' n''est pas valide.
 UriNotAbsolute = JAXP09020003 : L''URI indiqu\u00E9 ''{0}'' n''est pas absolu.
 UriNotValidUrl = JAXP09020004 : L''URI indiqu\u00E9 ''{0}'' n''est pas une URL valide.
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001 : Erreur inattendue lors de la configuration d'un analyseur SAX.
-ParsingFailed = JAXP09030002 : Echec de l'analyse du fichier de catalogue.
-NoCatalogFound = JAXP09030003 : Aucun catalogue n'est indiqu\u00E9.
+# Technical term, do not translate: catalog
+ParsingFailed = JAXP09030002 : Echec de l'analyse du fichier CATALOG.
+# Technical term, do not translate: catalog
+NoCatalogFound = JAXP09030003 : Aucun CATALOG n'est indiqu\u00E9.
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001 : Aucune correspondance trouv\u00E9e pour publicId ''{0}'' et systemId ''{1}''.
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002 : Aucune correspondance trouv\u00E9e pour l''\u00E9l\u00E9ment href ''{0}'' et la base ''{1}''.
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003 : Impossible de construire l''URI \u00E0 l''aide de l''\u00E9l\u00E9ment href ''{0}'' et de la base ''{1}''.
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_it.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_it.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,7 +30,8 @@
 CircularReference = JAXP09010001: il riferimento circolare non \u00E8 consentito: ''{0}''.
 
 # Input or configuration errors
-InvalidCatalog = JAXP09020001: l'elemento documento di un catalogo deve essere un catalogo.
+# Technical term, do not translate: catalog
+InvalidCatalog = JAXP09020001: l'elemento documento di un catalogo deve essere "catalog".
 InvalidEntryType = JAXP09020002: il tipo di voce ''{0}'' non \u00E8 valido.
 UriNotAbsolute = JAXP09020003: l''URI specificato ''{0}'' non \u00E8 assoluto.
 UriNotValidUrl = JAXP09020004: l''URI specificato ''{0}'' non \u00E8 valido.
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: errore imprevisto durante la configurazione di un parser SAX.
+# Technical term, do not translate: catalog
 ParsingFailed = JAXP09030002: analisi del file catalogo non riuscita.
+# Technical term, do not translate: catalog
 NoCatalogFound = JAXP09030003: nessun catalogo specificato.
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: nessuna corrispondenza trovata per publicId ''{0}'' e systemId ''{1}''.
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: nessuna corrispondenza trovata per href ''{0}'' e base ''{1}''.
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: impossibile creare l''URI utilizzando href ''{0}'' e base ''{1}''.
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_ja.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_ja.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,7 +30,8 @@
 CircularReference = JAXP09010001: \u5FAA\u74B0\u53C2\u7167\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093: ''{0}''\u3002
 
 # Input or configuration errors
-InvalidCatalog = JAXP09020001: \u30AB\u30BF\u30ED\u30B0\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u8981\u7D20\u306F\u30AB\u30BF\u30ED\u30B0\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+# Technical term, do not translate: catalog
+InvalidCatalog = JAXP09020001: \u30AB\u30BF\u30ED\u30B0\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u8981\u7D20\u306Fcatalog\u306B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
 InvalidEntryType = JAXP09020002: \u30A8\u30F3\u30C8\u30EA\u30FB\u30BF\u30A4\u30D7''{0}''\u306F\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
 UriNotAbsolute = JAXP09020003: \u6307\u5B9A\u3055\u308C\u305FURI ''{0}''\u304C\u7D76\u5BFEURI\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
 UriNotValidUrl = JAXP09020004: \u6307\u5B9A\u3057\u305FURI ''{0}''\u306F\u6709\u52B9\u306AURL\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: SAX\u30D1\u30FC\u30B5\u30FC\u306E\u69CB\u6210\u4E2D\u306B\u4E88\u671F\u3057\u306A\u3044\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
-ParsingFailed = JAXP09030002: \u30AB\u30BF\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
+# Technical term, do not translate: catalog
+ParsingFailed = JAXP09030002: \u30AB\u30BF\u30ED\u30B0\u30D5\u30A1\u30A4\u30EB\u306E\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002
+# Technical term, do not translate: catalog
 NoCatalogFound = JAXP09030003: \u30AB\u30BF\u30ED\u30B0\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: publicId ''{0}''\u304A\u3088\u3073systemId ''{1}''\u306B\u4E00\u81F4\u3059\u308B\u3082\u306E\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: href ''{0}''\u304A\u3088\u3073base ''{1}''\u306B\u4E00\u81F4\u3059\u308B\u3082\u306E\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: href ''{0}''\u304A\u3088\u3073base ''{1}''\u3092\u4F7F\u7528\u3057\u3066URI\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093\u3002
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_ko.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_ko.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,6 +30,7 @@
 CircularReference = JAXP09010001: \uC21C\uD658 \uCC38\uC870\uAC00 \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uC74C: ''{0}''.
 
 # Input or configuration errors
+# Technical term, do not translate: catalog
 InvalidCatalog = JAXP09020001: Catalog\uC758 \uBB38\uC11C \uC694\uC18C\uB294 catalog\uC5EC\uC57C \uD569\uB2C8\uB2E4.
 InvalidEntryType = JAXP09020002: \uD56D\uBAA9 \uC720\uD615 ''{0}''\uC774(\uAC00) \uBD80\uC801\uD569\uD569\uB2C8\uB2E4.
 UriNotAbsolute = JAXP09020003: \uC9C0\uC815\uB41C URI ''{0}''\uC774(\uAC00) \uC808\uB300 \uACBD\uB85C\uAC00 \uC544\uB2D9\uB2C8\uB2E4.
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: SAX \uAD6C\uBB38\uBD84\uC11D\uAE30\uB97C \uAD6C\uC131\uD558\uB294 \uC911 \uC608\uC0C1\uCE58 \uC54A\uC740 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4.
+# Technical term, do not translate: catalog
 ParsingFailed = JAXP09030002: Catalog \uD30C\uC77C\uC758 \uAD6C\uBB38\uBD84\uC11D\uC744 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4.
+# Technical term, do not translate: catalog
 NoCatalogFound = JAXP09030003: \uC9C0\uC815\uB41C catalog\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: publicId ''{0}'', systemId ''{1}''\uC5D0 \uB300\uD55C \uC77C\uCE58 \uD56D\uBAA9\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: href ''{0}'', base ''{1}''\uC5D0 \uB300\uD55C \uC77C\uCE58 \uD56D\uBAA9\uC744 \uCC3E\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: href ''{0}'', base ''{1}''\uC744(\uB97C) \uC0AC\uC6A9\uD558\uC5EC URI\uB97C \uAD6C\uC131\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_pt_BR.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_pt_BR.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,7 +30,8 @@
 CircularReference = JAXP09010001: A refer\u00EAncia circular n\u00E3o \u00E9 permitida: ''{0}''.
 
 # Input or configuration errors
-InvalidCatalog = JAXP09020001: O elemento de documento de um cat\u00E1logo deve ser o cat\u00E1logo.
+# Technical term, do not translate: catalog
+InvalidCatalog = JAXP09020001: O elemento de documento de um cat\u00E1logo deve ser "catalog".
 InvalidEntryType = JAXP09020002: O tipo de entrada "{0}" n\u00E3o \u00E9 v\u00E1lido.
 UriNotAbsolute = JAXP09020003: O URI especificado ''{0}'' n\u00E3o \u00E9 absoluto.
 UriNotValidUrl = JAXP09020004: O URI especificado ''{0}'' n\u00E3o \u00E9 um URL v\u00E1lido.
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: Erro inesperado ao configurar um parser SAX.
+# Technical term, do not translate: catalog
 ParsingFailed = JAXP09030002: Falha ao fazer parsing do arquivo de cat\u00E1logo.
-NoCatalogFound = JAXP09030003: Nenhum Cat\u00E1logo foi especificado.
+# Technical term, do not translate: catalog
+NoCatalogFound = JAXP09030003: Nenhum cat\u00E1logo foi especificado.
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: Nenhuma correspond\u00EAncia foi encontrada para publicId ''{0}'' e systemId ''{1}''.
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: Nenhuma correspond\u00EAncia foi encontrada para href ''{0}'' e base ''{1}''.
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: N\u00E3o \u00E9 poss\u00EDvel construir o URI usando href ''{0}'' e base ''{1}''.
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_sv.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_sv.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,7 +30,8 @@
 CircularReference = JAXP09010001: Cirkelreferens \u00E4r inte till\u00E5ten: ''{0}''.
 
 # Input or configuration errors
-InvalidCatalog = JAXP09020001: Dokumentelementet f\u00F6r en katalog m\u00E5ste vara katalog.
+# Technical term, do not translate: catalog
+InvalidCatalog = JAXP09020001: Dokumentelementet f\u00F6r en katalog m\u00E5ste vara "catalog".
 InvalidEntryType = JAXP09020002: Posttypen ''{0}'' \u00E4r inte giltig.
 UriNotAbsolute = JAXP09020003: Den angivna URI:n, ''{0}'', \u00E4r inte absolut.
 UriNotValidUrl = JAXP09020004: Den angivna URI:n, ''{0}'', \u00E4r inte en giltig URL.
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: Ov\u00E4ntat fel vid konfiguration av en SAX-parser.
-ParsingFailed = JAXP09030002: Kunde inte tolka katalogfilen.
+# Technical term, do not translate: catalog
+ParsingFailed = JAXP09030002: Kunde inte tolka filen katalog.
+# Technical term, do not translate: catalog
 NoCatalogFound = JAXP09030003: Ingen katalog har angetts.
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: Ingen matchning hittades f\u00F6r publicId = ''{0}'' och systemId = ''{1}''.
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: Ingen matchning hittades f\u00F6r href = ''{0}'' och bas = ''{1}''.
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: Kan inte skapa URI med href = ''{0}'' och bas = ''{1}''.
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_zh_CN.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_zh_CN.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,7 +30,8 @@
 CircularReference = JAXP09010001: \u4E0D\u5141\u8BB8\u5FAA\u73AF\u5F15\u7528: ''{0}''\u3002
 
 # Input or configuration errors
-InvalidCatalog = JAXP09020001: catalog \u7684\u6587\u6863\u5143\u7D20\u5FC5\u987B\u662F catalog\u3002
+# Technical term, do not translate: catalog
+InvalidCatalog = JAXP09020001: \u76EE\u5F55\u7684\u6587\u6863\u5143\u7D20\u5FC5\u987B\u662F "catalog"\u3002
 InvalidEntryType = JAXP09020002: \u6761\u76EE\u7C7B\u578B ''{0}'' \u65E0\u6548\u3002
 UriNotAbsolute = JAXP09020003: \u6307\u5B9A\u7684 URI ''{0}'' \u4E0D\u662F\u7EDD\u5BF9\u7684\u3002
 UriNotValidUrl = JAXP09020004: \u6307\u5B9A\u7684 URI ''{0}'' \u4E0D\u662F\u6709\u6548\u7684 URL\u3002
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: \u914D\u7F6E SAX \u89E3\u6790\u5668\u65F6\u51FA\u73B0\u610F\u5916\u9519\u8BEF\u3002
-ParsingFailed = JAXP09030002: \u65E0\u6CD5\u5BF9 catalog \u6587\u4EF6\u8FDB\u884C\u89E3\u6790\u3002
-NoCatalogFound = JAXP09030003: \u672A\u6307\u5B9A catalog\u3002
+# Technical term, do not translate: catalog
+ParsingFailed = JAXP09030002: \u65E0\u6CD5\u5BF9\u76EE\u5F55\u6587\u4EF6\u8FDB\u884C\u89E3\u6790\u3002
+# Technical term, do not translate: catalog
+NoCatalogFound = JAXP09030003: \u672A\u6307\u5B9A\u76EE\u5F55\u3002
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: \u5BF9\u4E8E publicId ''{0}'' \u548C systemId ''{1}'', \u672A\u627E\u5230\u5339\u914D\u9879\u3002
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: \u5BF9\u4E8E href ''{0}'' \u548C base ''{1}'', \u672A\u627E\u5230\u5339\u914D\u9879\u3002
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: \u65E0\u6CD5\u4F7F\u7528 href ''{0}'' \u548C base ''{1}'' \u6784\u9020 URI\u3002
 
--- a/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_zh_TW.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/java.xml/share/classes/javax/xml/catalog/CatalogMessages_zh_TW.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -30,7 +30,8 @@
 CircularReference = JAXP09010001: \u4E0D\u5141\u8A31\u5FAA\u74B0\u53C3\u7167: ''{0}''\u3002
 
 # Input or configuration errors
-InvalidCatalog = JAXP09020001: Catalog \u7684\u6587\u4EF6\u5143\u7D20\u5FC5\u9808\u662F Catalog\u3002
+# Technical term, do not translate: catalog
+InvalidCatalog = JAXP09020001: catalog \u7684\u6587\u4EF6\u5143\u7D20\u5FC5\u9808\u662F catalog\u3002
 InvalidEntryType = JAXP09020002: \u9805\u76EE\u985E\u578B ''{0}'' \u7121\u6548\u3002
 UriNotAbsolute = JAXP09020003: \u6307\u5B9A\u7684 URI ''{0}'' \u4E0D\u662F\u7D55\u5C0D\u8DEF\u5F91\u3002
 UriNotValidUrl = JAXP09020004: \u6307\u5B9A\u7684 URI ''{0}'' \u4E0D\u662F\u6709\u6548\u7684 URL\u3002
@@ -41,12 +42,16 @@
 
 # Parsing errors
 ParserConf = JAXP09030001: \u8A2D\u5B9A SAX \u5256\u6790\u5668\u6642\u767C\u751F\u672A\u9810\u671F\u7684\u932F\u8AA4\u3002
-ParsingFailed = JAXP09030002: \u7121\u6CD5\u5256\u6790 Catalog \u6A94\u6848\u3002
+# Technical term, do not translate: catalog
+ParsingFailed = JAXP09030002: \u7121\u6CD5\u5256\u6790 catalog \u6A94\u6848\u3002
+# Technical term, do not translate: catalog
 NoCatalogFound = JAXP09030003: \u672A\u6307\u5B9A Catalog\u3002
 
 
 # Resolving errors
 NoMatchFound = JAXP09040001: \u627E\u4E0D\u5230\u7B26\u5408 publicId ''{0}'' \u548C systemId ''{1}'' \u7684\u9805\u76EE\u3002
+# Technical term, do not translate: href, base
 NoMatchURIFound = JAXP09040002: \u627E\u4E0D\u5230\u7B26\u5408 href ''{0}'' \u548C\u57FA\u790E ''{1}'' \u7684\u9805\u76EE\u3002
+# Technical term, do not translate: href, base
 FailedCreatingURI = JAXP09040003: \u7121\u6CD5\u4F7F\u7528 href ''{0}'' \u548C\u57FA\u790E ''{1}'' \u5EFA\u69CB URI\u3002
 
--- a/src/java.xml/share/legal/xmlresolver.md	Thu Feb 08 14:58:40 2018 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-## Apache XML Resolver Library v1.2
-
-### Apache XML Resolver Notice
-<pre>
-
-Apache XML Commons Resolver
-Copyright 2006 The Apache Software Foundation.
-
-This product includes software developed at
-The Apache Software Foundation http://www.apache.org/
-
-Portions of this code are derived from classes placed in the
-public domain by Arbortext on 10 Apr 2000. See:
-http://www.arbortext.com/customer_support/updates_and_technical_notes/catalogs/docs/README.htm
-
-</pre>
-
-### Apache 2.0 License
-<pre>
-
-                              Apache License
-                        Version 2.0, January 2004
-                     http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-   "License" shall mean the terms and conditions for use, reproduction,
-   and distribution as defined by Sections 1 through 9 of this document.
-
-   "Licensor" shall mean the copyright owner or entity authorized by
-   the copyright owner that is granting the License.
-
-   "Legal Entity" shall mean the union of the acting entity and all
-   other entities that control, are controlled by, or are under common
-   control with that entity. For the purposes of this definition,
-   "control" means (i) the power, direct or indirect, to cause the
-   direction or management of such entity, whether by contract or
-   otherwise, or (ii) ownership of fifty percent (50%) or more of the
-   outstanding shares, or (iii) beneficial ownership of such entity.
-
-   "You" (or "Your") shall mean an individual or Legal Entity
-   exercising permissions granted by this License.
-
-   "Source" form shall mean the preferred form for making modifications,
-   including but not limited to software source code, documentation
-   source, and configuration files.
-
-   "Object" form shall mean any form resulting from mechanical
-   transformation or translation of a Source form, including but
-   not limited to compiled object code, generated documentation,
-   and conversions to other media types.
-
-   "Work" shall mean the work of authorship, whether in Source or
-   Object form, made available under the License, as indicated by a
-   copyright notice that is included in or attached to the work
-   (an example is provided in the Appendix below).
-
-   "Derivative Works" shall mean any work, whether in Source or Object
-   form, that is based on (or derived from) the Work and for which the
-   editorial revisions, annotations, elaborations, or other modifications
-   represent, as a whole, an original work of authorship. For the purposes
-   of this License, Derivative Works shall not include works that remain
-   separable from, or merely link (or bind by name) to the interfaces of,
-   the Work and Derivative Works thereof.
-
-   "Contribution" shall mean any work of authorship, including
-   the original version of the Work and any modifications or additions
-   to that Work or Derivative Works thereof, that is intentionally
-   submitted to Licensor for inclusion in the Work by the copyright owner
-   or by an individual or Legal Entity authorized to submit on behalf of
-   the copyright owner. For the purposes of this definition, "submitted"
-   means any form of electronic, verbal, or written communication sent
-   to the Licensor or its representatives, including but not limited to
-   communication on electronic mailing lists, source code control systems,
-   and issue tracking systems that are managed by, or on behalf of, the
-   Licensor for the purpose of discussing and improving the Work, but
-   excluding communication that is conspicuously marked or otherwise
-   designated in writing by the copyright owner as "Not a Contribution."
-
-   "Contributor" shall mean Licensor and any individual or Legal Entity
-   on behalf of whom a Contribution has been received by Licensor and
-   subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   copyright license to reproduce, prepare Derivative Works of,
-   publicly display, publicly perform, sublicense, and distribute the
-   Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   (except as stated in this section) patent license to make, have made,
-   use, offer to sell, sell, import, and otherwise transfer the Work,
-   where such license applies only to those patent claims licensable
-   by such Contributor that are necessarily infringed by their
-   Contribution(s) alone or by combination of their Contribution(s)
-   with the Work to which such Contribution(s) was submitted. If You
-   institute patent litigation against any entity (including a
-   cross-claim or counterclaim in a lawsuit) alleging that the Work
-   or a Contribution incorporated within the Work constitutes direct
-   or contributory patent infringement, then any patent licenses
-   granted to You under this License for that Work shall terminate
-   as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-   Work or Derivative Works thereof in any medium, with or without
-   modifications, and in Source or Object form, provided that You
-   meet the following conditions:
-
-   (a) You must give any other recipients of the Work or
-       Derivative Works a copy of this License; and
-
-   (b) You must cause any modified files to carry prominent notices
-       stating that You changed the files; and
-
-   (c) You must retain, in the Source form of any Derivative Works
-       that You distribute, all copyright, patent, trademark, and
-       attribution notices from the Source form of the Work,
-       excluding those notices that do not pertain to any part of
-       the Derivative Works; and
-
-   (d) If the Work includes a "NOTICE" text file as part of its
-       distribution, then any Derivative Works that You distribute must
-       include a readable copy of the attribution notices contained
-       within such NOTICE file, excluding those notices that do not
-       pertain to any part of the Derivative Works, in at least one
-       of the following places: within a NOTICE text file distributed
-       as part of the Derivative Works; within the Source form or
-       documentation, if provided along with the Derivative Works; or,
-       within a display generated by the Derivative Works, if and
-       wherever such third-party notices normally appear. The contents
-       of the NOTICE file are for informational purposes only and
-       do not modify the License. You may add Your own attribution
-       notices within Derivative Works that You distribute, alongside
-       or as an addendum to the NOTICE text from the Work, provided
-       that such additional attribution notices cannot be construed
-       as modifying the License.
-
-   You may add Your own copyright statement to Your modifications and
-   may provide additional or different license terms and conditions
-   for use, reproduction, or distribution of Your modifications, or
-   for any such Derivative Works as a whole, provided Your use,
-   reproduction, and distribution of the Work otherwise complies with
-   the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-   any Contribution intentionally submitted for inclusion in the Work
-   by You to the Licensor shall be under the terms and conditions of
-   this License, without any additional terms or conditions.
-   Notwithstanding the above, nothing herein shall supersede or modify
-   the terms of any separate license agreement you may have executed
-   with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-   names, trademarks, service marks, or product names of the Licensor,
-   except as required for reasonable and customary use in describing the
-   origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-   agreed to in writing, Licensor provides the Work (and each
-   Contributor provides its Contributions) on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-   implied, including, without limitation, any warranties or conditions
-   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-   PARTICULAR PURPOSE. You are solely responsible for determining the
-   appropriateness of using or redistributing the Work and assume any
-   risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-   whether in tort (including negligence), contract, or otherwise,
-   unless required by applicable law (such as deliberate and grossly
-   negligent acts) or agreed to in writing, shall any Contributor be
-   liable to You for damages, including any direct, indirect, special,
-   incidental, or consequential damages of any character arising as a
-   result of this License or out of the use or inability to use the
-   Work (including but not limited to damages for loss of goodwill,
-   work stoppage, computer failure or malfunction, or any and all
-   other commercial damages or losses), even if such Contributor
-   has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-   the Work or Derivative Works thereof, You may choose to offer,
-   and charge a fee for, acceptance of support, warranty, indemnity,
-   or other liability obligations and/or rights consistent with this
-   License. However, in accepting such obligations, You may act only
-   on Your own behalf and on Your sole responsibility, not on behalf
-   of any other Contributor, and only if You agree to indemnify,
-   defend, and hold each Contributor harmless for any liability
-   incurred by, or claims asserted against, such Contributor by reason
-   of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
-   To apply the Apache License to your work, attach the following
-   boilerplate notice, with the fields enclosed by brackets "[]"
-   replaced with your own identifying information. (Don't include
-   the brackets!)  The text should be enclosed in the appropriate
-   comment syntax for the file format. We also recommend that a
-   file or class name and description of purpose be included on the
-   same "printed page" as the copyright notice for easier
-   identification within third-party archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-</pre>
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -157,7 +157,7 @@
         BINARY_LITERALS(JDK7, Fragments.FeatureBinaryLit, DiagKind.PLURAL),
         UNDERSCORES_IN_LITERALS(JDK7, Fragments.FeatureUnderscoreLit, DiagKind.PLURAL),
         STRINGS_IN_SWITCH(JDK7, Fragments.FeatureStringSwitch, DiagKind.PLURAL),
-        DEPRECATION_ON_IMPORT(MIN, JDK9),
+        DEPRECATION_ON_IMPORT(MIN, JDK8),
         SIMPLIFIED_VARARGS(JDK7),
         OBJECT_TO_PRIMITIVE_CAST(JDK7),
         ENFORCE_THIS_DOT_INIT(JDK7),
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1175,7 +1175,7 @@
             endAttr(alenIdx);
             acount++;
         }
-        if (options.isSet(PARAMETERS)) {
+        if (options.isSet(PARAMETERS) && target.hasMethodParameters()) {
             if (!m.isLambdaMethod()) // Per JDK-8138729, do not emit parameters table for lambda bodies.
                 acount += writeMethodParametersAttr(m);
         }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -135,6 +135,12 @@
         return compareTo(JDK1_7) >= 0;
     }
 
+    /** Does the target VM expect MethodParameters attributes?
+     */
+    public boolean hasMethodParameters() {
+        return compareTo(JDK1_8) >= 0;
+    }
+
     /** Does the VM support polymorphic method handle invocation?
      *  Affects the linkage information output to the classfile.
      *  An alias for {@code hasInvokedynamic}, since all the JSR 292 features appear together.
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -595,6 +595,10 @@
                 Option.LIMIT_MODULES,
                 Option.PATCH_MODULE);
 
+        if (lintOptions && options.isSet(Option.PARAMETERS) && !target.hasMethodParameters()) {
+            log.warning(Warnings.OptionParametersUnsupported(target.name, Target.JDK1_8.name));
+        }
+
         if (fm.hasLocation(StandardLocation.MODULE_SOURCE_PATH)) {
             if (!options.isSet(Option.PROC, "only")
                     && !fm.hasLocation(StandardLocation.CLASS_OUTPUT)) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -1758,6 +1758,11 @@
 compiler.err.option.removed.target=\
     Target option {0} is no longer supported. Use {1} or later.
 
+
+# 0: string, 1: string
+compiler.warn.option.parameters.unsupported=\
+    -parameters is not supported for target value {0}. Use {1} or later.
+
 compiler.warn.option.obsolete.suppression=\
     To suppress warnings about obsolete options, use -Xlint:-options.
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_ja.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_ja.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -335,6 +335,9 @@
 # 0: name
 compiler.err.duplicate.class=\u30AF\u30E9\u30B9{0}\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059
 
+# 0: name, 1: name
+compiler.err.same.binary.name=\u30AF\u30E9\u30B9: {0}\u3068{1}\u306E\u30D0\u30A4\u30CA\u30EA\u540D\u304C\u540C\u3058\u3067\u3059
+
 compiler.err.duplicate.case.label=case\u30E9\u30D9\u30EB\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059
 
 compiler.err.duplicate.default.label=default\u30E9\u30D9\u30EB\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059
@@ -550,6 +553,9 @@
 # 0: set of flag
 compiler.err.mod.not.allowed.here=\u4FEE\u98FE\u5B50{0}\u3092\u3053\u3053\u3067\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
 
+# 0: name
+compiler.err.modifier.not.allowed.here=\u4FEE\u98FE\u5B50{0}\u3092\u3053\u3053\u3067\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
+
 compiler.err.intf.not.allowed.here=\u3053\u3053\u3067\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093
 
 compiler.err.enums.must.be.static=\u5217\u6319\u578B\u306E\u5BA3\u8A00\u306Fstatic\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059
@@ -860,6 +866,8 @@
 # 0: token
 compiler.err.var.not.allowed=\u3053\u3053\u3067\u306F''{0}''\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093\n\u30EA\u30EA\u30FC\u30B910\u304B\u3089''{0}''\u306F\u5236\u9650\u3055\u308C\u305F\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u578B\u3067\u3042\u308A\u3001\u578B\u306E\u5BA3\u8A00\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
 
+compiler.warn.var.not.allowed=\u30EA\u30EA\u30FC\u30B910\u304B\u3089\u3001''var''\u306F\u5236\u9650\u3055\u308C\u305F\u30ED\u30FC\u30AB\u30EB\u5909\u6570\u578B\u3067\u3042\u308A\u3001\u578B\u306E\u5BA3\u8A00\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093
+
 # 0: name (variable), 1: message segment
 compiler.err.cant.infer.local.var.type=\u30ED\u30FC\u30AB\u30EB\u5909\u6570{0}\u306E\u578B\u3092\u63A8\u8AD6\u3067\u304D\u307E\u305B\u3093\n({1})
 
@@ -2230,6 +2238,8 @@
 
 compiler.misc.cant.resolve.modules=\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093
 
+compiler.misc.bad.requires.flag=\u4E0D\u6B63\u306A\u5FC5\u9808\u30D5\u30E9\u30B0: {0}
+
 # 0: string
 compiler.err.invalid.module.specifier=\u30E2\u30B8\u30E5\u30FC\u30EB\u6307\u5B9A\u5B50\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093: {0}
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -335,6 +335,9 @@
 # 0: name
 compiler.err.duplicate.class=\u7C7B\u91CD\u590D: {0}
 
+# 0: name, 1: name
+compiler.err.same.binary.name=\u7C7B\uFF1A{0} \u548C {1} \u5177\u6709\u76F8\u540C\u7684\u4E8C\u8FDB\u5236\u540D\u79F0
+
 compiler.err.duplicate.case.label=case \u6807\u7B7E\u91CD\u590D
 
 compiler.err.duplicate.default.label=default \u6807\u7B7E\u91CD\u590D
@@ -550,6 +553,9 @@
 # 0: set of flag
 compiler.err.mod.not.allowed.here=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528\u4FEE\u9970\u7B26{0}
 
+# 0: name
+compiler.err.modifier.not.allowed.here=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528\u4FEE\u9970\u7B26{0}
+
 compiler.err.intf.not.allowed.here=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528\u63A5\u53E3
 
 compiler.err.enums.must.be.static=\u53EA\u6709\u5728\u9759\u6001\u4E0A\u4E0B\u6587\u4E2D\u624D\u5141\u8BB8\u4F7F\u7528\u679A\u4E3E\u58F0\u660E
@@ -860,6 +866,8 @@
 # 0: token
 compiler.err.var.not.allowed=\u4ECE\u53D1\u884C\u7248 10 \u5F00\u59CB,\n\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528 ''{0}'', ''{0}'' \u662F\u53D7\u9650\u5236\u7684\u672C\u5730\u53D8\u91CF\u7C7B\u578B, \u65E0\u6CD5\u7528\u4E8E\u7C7B\u578B\u58F0\u660E
 
+compiler.warn.var.not.allowed=\u4ECE\u53D1\u884C\u7248 10 \u5F00\u59CB\uFF0C''var'' \u662F\u53D7\u9650\u5236\u7684\u672C\u5730\u53D8\u91CF\u7C7B\u578B\uFF0C\u65E0\u6CD5\u7528\u4E8E\u7C7B\u578B\u58F0\u660E
+
 # 0: name (variable), 1: message segment
 compiler.err.cant.infer.local.var.type=\u65E0\u6CD5\u63A8\u65AD\u672C\u5730\u53D8\u91CF {0} \u7684\u7C7B\u578B\n({1})
 
@@ -2230,6 +2238,8 @@
 
 compiler.misc.cant.resolve.modules=\u65E0\u6CD5\u89E3\u6790\u6A21\u5757
 
+compiler.misc.bad.requires.flag=\u9519\u8BEF\u7684\u8BF7\u6C42\u6807\u8BB0\uFF1A{0}
+
 # 0: string
 compiler.err.invalid.module.specifier=\u4E0D\u5141\u8BB8\u6A21\u5757\u8BF4\u660E\u7B26: {0}
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/Pretty.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/Pretty.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -637,19 +637,43 @@
                 print("/*public static final*/ ");
                 print(tree.name);
                 if (tree.init != null) {
-                    if (sourceOutput && tree.init.hasTag(NEWCLASS)) {
-                        print(" /*enum*/ ");
+                    if (tree.init.hasTag(NEWCLASS)) {
                         JCNewClass init = (JCNewClass) tree.init;
-                        if (init.args != null && init.args.nonEmpty()) {
+                        if (sourceOutput) {
+                            print(" /*enum*/ ");
+                            if (init.args != null && init.args.nonEmpty()) {
+                                print("(");
+                                print(init.args);
+                                print(")");
+                            }
+                            if (init.def != null && init.def.defs != null) {
+                                print(" ");
+                                printBlock(init.def.defs);
+                            }
+                            return;
+                        }else {
+                            print(" /* = ");
+                            print("new ");
+                            if (init.def != null && init.def.mods.annotations.nonEmpty()) {
+                                printTypeAnnotations(init.def.mods.annotations);
+                            }
+                            printExpr(init.clazz);
                             print("(");
-                            print(init.args);
+                            printExprs(init.args);
                             print(")");
+                            print(" */");
+                            print(" /*enum*/ ");
+                            if (init.args != null && init.args.nonEmpty()) {
+                                print("(");
+                                printExprs(init.args);
+                                print(")");
+                            }
+                            if (init.def != null && init.def.defs != null) {
+                                print(" ");
+                                printBlock(init.def.defs);
+                            }
+                            return;
                         }
-                        if (init.def != null && init.def.defs != null) {
-                            print(" ");
-                            printBlock(init.def.defs);
-                        }
-                        return;
                     }
                     print(" /* = ");
                     printExpr(tree.init);
--- a/src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSigner.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jartool/share/classes/jdk/security/jarsigner/JarSigner.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -547,6 +547,11 @@
     /**
      * Signs a file into an {@link OutputStream}. This method will not close
      * {@code file} or {@code os}.
+     * <p>
+     * If an I/O error or signing error occurs during the signing, then it may
+     * do so after some bytes have been written. Consequently, the output
+     * stream may be in an inconsistent state. It is strongly recommended that
+     * it be promptly closed in this case.
      *
      * @param file the file to sign.
      * @param os the output stream.
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java	Thu Feb 08 22:34:20 2018 -0800
@@ -26,6 +26,7 @@
 package sun.security.tools.jarsigner;
 
 import java.io.*;
+import java.net.UnknownHostException;
 import java.security.cert.CertPathValidatorException;
 import java.security.cert.PKIXBuilderParameters;
 import java.util.*;
@@ -1400,13 +1401,6 @@
             error(rb.getString("unable.to.open.jar.file.")+jarName, ioe);
         }
 
-        FileOutputStream fos = null;
-        try {
-            fos = new FileOutputStream(signedJarFile);
-        } catch (IOException ioe) {
-            error(rb.getString("unable.to.create.")+tmpJarName, ioe);
-        }
-
         CertPath cp = CertificateFactory.getInstance("X.509")
                 .generateCertPath(Arrays.asList(certChain));
         JarSigner.Builder builder = new JarSigner.Builder(privateKey, cp);
@@ -1473,24 +1467,42 @@
         builder.setProperty("sectionsOnly", Boolean.toString(!signManifest));
         builder.setProperty("internalSF", Boolean.toString(!externalSF));
 
+        FileOutputStream fos = null;
+        try {
+            fos = new FileOutputStream(signedJarFile);
+        } catch (IOException ioe) {
+            error(rb.getString("unable.to.create.")+tmpJarName, ioe);
+        }
+
+        Throwable failedCause = null;
+        String failedMessage = null;
+
         try {
             builder.build().sign(zipFile, fos);
         } catch (JarSignerException e) {
-            Throwable cause = e.getCause();
-            if (cause != null && cause instanceof SocketTimeoutException) {
+            failedCause = e.getCause();
+            if (failedCause instanceof SocketTimeoutException
+                    || failedCause instanceof UnknownHostException) {
                 // Provide a helpful message when TSA is beyond a firewall
-                error(rb.getString("unable.to.sign.jar.") +
+                failedMessage = rb.getString("unable.to.sign.jar.") +
                         rb.getString("no.response.from.the.Timestamping.Authority.") +
                         "\n  -J-Dhttp.proxyHost=<hostname>" +
                         "\n  -J-Dhttp.proxyPort=<portnumber>\n" +
                         rb.getString("or") +
                         "\n  -J-Dhttps.proxyHost=<hostname> " +
-                        "\n  -J-Dhttps.proxyPort=<portnumber> ", e);
+                        "\n  -J-Dhttps.proxyPort=<portnumber> ";
             } else {
-                error(rb.getString("unable.to.sign.jar.")+e.getCause(), e.getCause());
+                // JarSignerException might have a null cause
+                if (failedCause == null) {
+                    failedCause = e;
+                }
+                failedMessage = rb.getString("unable.to.sign.jar.") + failedCause;
             }
+        } catch (Exception e) {
+            failedCause = e;
+            failedMessage = rb.getString("unable.to.sign.jar.") + failedCause;
         } finally {
-            // close the resouces
+            // close the resources
             if (zipFile != null) {
                 zipFile.close();
                 zipFile = null;
@@ -1499,6 +1511,12 @@
             if (fos != null) {
                 fos.close();
             }
+
+        }
+
+        if (failedCause != null) {
+            signedJarFile.delete();
+            error(failedMessage, failedCause);
         }
 
         // The JarSigner API always accepts the timestamp received.
--- a/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_fr.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_fr.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -40,7 +40,7 @@
 error.create.dir={0} : impossible de cr\u00E9er le r\u00E9pertoire
 error.incorrect.length=longueur incorrecte lors du traitement de : {0}
 error.create.tempfile=Impossible de cr\u00E9er un fichier temporaire
-error.hash.dep=Hachage des d\u00E9pendances du module {0}, module {1} introuvable sur le chemin de module
+error.hash.dep=Hachage des d\u00E9pendances du module {0}, module {1} introuvable sur le chemin de modules
 error.module.options.without.info=Une des options --module-version ou --hash-modules sans module-info.class
 error.no.operative.descriptor=Aucun descripteur op\u00E9rationnel pour la version : {0}
 error.no.root.descriptor=Aucun descripteur de module racine, indiquer --release
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -37,7 +37,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.Links;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.toolkit.AnnotationTypeWriter;
 import jdk.javadoc.internal.doclets.toolkit.Content;
@@ -70,23 +69,15 @@
 
     protected TypeElement annotationType;
 
-    protected TypeMirror prev;
-
-    protected TypeMirror next;
-
     /**
      * @param configuration the configuration
      * @param annotationType the annotation type being documented.
-     * @param prevType the previous class that was documented.
-     * @param nextType the next class being documented.
      */
     public AnnotationTypeWriterImpl(HtmlConfiguration configuration,
-            TypeElement annotationType, TypeMirror prevType, TypeMirror nextType) {
-        super(configuration, DocPath.forClass(configuration.utils, annotationType));
+            TypeElement annotationType) {
+        super(configuration, configuration.docPaths.forClass(annotationType));
         this.annotationType = annotationType;
         configuration.currentTypeElement = annotationType;
-        this.prev = prevType;
-        this.next = nextType;
     }
 
     /**
@@ -139,44 +130,6 @@
     }
 
     /**
-     * Get link to previous class.
-     *
-     * @return a content tree for the previous class link
-     */
-    @Override
-    public Content getNavLinkPrevious() {
-        Content li;
-        if (prev != null) {
-            Content prevLink = getLink(new LinkInfoImpl(configuration,
-                    LinkInfoImpl.Kind.CLASS, utils.asTypeElement(prev))
-                    .label(contents.prevClassLabel).strong(true));
-            li = HtmlTree.LI(prevLink);
-        }
-        else
-            li = HtmlTree.LI(contents.prevClassLabel);
-        return li;
-    }
-
-    /**
-     * Get link to next class.
-     *
-     * @return a content tree for the next class link
-     */
-    @Override
-    public Content getNavLinkNext() {
-        Content li;
-        if (next != null) {
-            Content nextLink = getLink(new LinkInfoImpl(configuration,
-                    LinkInfoImpl.Kind.CLASS, utils.asTypeElement(next))
-                    .label(contents.nextClassLabel).strong(true));
-            li = HtmlTree.LI(nextLink);
-        }
-        else
-            li = HtmlTree.LI(contents.nextClassLabel);
-        return li;
-    }
-
-    /**
      * {@inheritDoc}
      */
     @Override
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -233,9 +233,9 @@
     public static void generate(HtmlConfiguration configuration, ClassUseMapper mapper,
                                 TypeElement typeElement) throws DocFileIOException {
         ClassUseWriter clsgen;
-        DocPath path = DocPath.forPackage(configuration.utils, typeElement)
+        DocPath path = configuration.docPaths.forPackage(typeElement)
                               .resolve(DocPaths.CLASS_USE)
-                              .resolve(DocPath.forName(configuration.utils, typeElement));
+                              .resolve(configuration.docPaths.forName( typeElement));
         clsgen = new ClassUseWriter(configuration, mapper, path, typeElement);
         clsgen.generateClassUseFile();
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -40,7 +40,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.Links;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.toolkit.ClassWriter;
 import jdk.javadoc.internal.doclets.toolkit.Content;
@@ -79,25 +78,17 @@
 
     protected final ClassTree classtree;
 
-    protected final TypeElement prev;
-
-    protected final TypeElement next;
-
     /**
      * @param configuration the configuration data for the doclet
      * @param typeElement the class being documented.
-     * @param prevClass the previous class that was documented.
-     * @param nextClass the next class being documented.
      * @param classTree the class tree for the given class.
      */
     public ClassWriterImpl(HtmlConfiguration configuration, TypeElement typeElement,
-                           TypeElement prevClass, TypeElement nextClass, ClassTree classTree) {
-        super(configuration, DocPath.forClass(configuration.utils, typeElement));
+                           ClassTree classTree) {
+        super(configuration, configuration.docPaths.forClass(typeElement));
         this.typeElement = typeElement;
         configuration.currentTypeElement = typeElement;
         this.classtree = classTree;
-        this.prev = prevClass;
-        this.next = nextClass;
     }
 
     /**
@@ -150,44 +141,6 @@
     }
 
     /**
-     * Get link to previous class.
-     *
-     * @return a content tree for the previous class link
-     */
-    @Override
-    public Content getNavLinkPrevious() {
-        Content li;
-        if (prev != null) {
-            Content prevLink = getLink(new LinkInfoImpl(configuration,
-                    LinkInfoImpl.Kind.CLASS, prev)
-                    .label(contents.prevClassLabel).strong(true));
-            li = HtmlTree.LI(prevLink);
-        }
-        else
-            li = HtmlTree.LI(contents.prevClassLabel);
-        return li;
-    }
-
-    /**
-     * Get link to next class.
-     *
-     * @return a content tree for the next class link
-     */
-    @Override
-    public Content getNavLinkNext() {
-        Content li;
-        if (next != null) {
-            Content nextLink = getLink(new LinkInfoImpl(configuration,
-                    LinkInfoImpl.Kind.CLASS, next)
-                    .label(contents.nextClassLabel).strong(true));
-            li = HtmlTree.LI(nextLink);
-        }
-        else
-            li = HtmlTree.LI(contents.nextClassLabel);
-        return li;
-    }
-
-    /**
      * {@inheritDoc}
      */
     @Override
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Contents.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/Contents.java	Thu Feb 08 22:34:20 2018 -0800
@@ -140,11 +140,6 @@
     public final Content navServices;
     public final Content nestedClassSummary;
     public final Content newPage;
-    public final Content nextClassLabel;
-    public final Content nextLabel;
-    public final Content nextLetter;
-    public final Content nextModuleLabel;
-    public final Content nextPackageLabel;
     public final Content noFramesLabel;
     public final Content noScriptMessage;
     public final Content openModuleLabel;
@@ -155,11 +150,6 @@
     public final Content packageLabel;
     public final Content package_;
     public final Content packagesLabel;
-    public final Content prevClassLabel;
-    public final Content prevLabel;
-    public final Content prevLetter;
-    public final Content prevModuleLabel;
-    public final Content prevPackageLabel;
     public final Content properties;
     public final Content propertyLabel;
     public final Content propertyDetailsLabel;
@@ -275,11 +265,6 @@
         navServices = getContent("doclet.navServices");
         nestedClassSummary = getContent("doclet.Nested_Class_Summary");
         newPage = new Comment(resources.getText("doclet.New_Page"));
-        nextClassLabel = getNonBreakContent("doclet.Next_Class");
-        nextLabel = getNonBreakContent("doclet.Next");
-        nextLetter = getContent("doclet.Next_Letter");
-        nextModuleLabel = getNonBreakContent("doclet.Next_Module");
-        nextPackageLabel = getNonBreakContent("doclet.Next_Package");
         noFramesLabel = getNonBreakContent("doclet.No_Frames");
         noScriptMessage = getContent("doclet.No_Script_Message");
         openedTo = getContent("doclet.OpenedTo");
@@ -290,11 +275,6 @@
         packageLabel = getContent("doclet.Package");
         package_ = getContent("doclet.package");
         packagesLabel = getContent("doclet.Packages");
-        prevClassLabel = getNonBreakContent("doclet.Prev_Class");
-        prevLabel = getContent("doclet.Prev");
-        prevLetter = getContent("doclet.Prev_Letter");
-        prevModuleLabel = getNonBreakContent("doclet.Prev_Module");
-        prevPackageLabel = getNonBreakContent("doclet.Prev_Package");
         properties = getContent("doclet.Properties");
         propertyLabel = getContent("doclet.Property");
         propertyDetailsLabel = getContent("doclet.Property_Detail");
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -74,12 +74,18 @@
 
         switch (element.getKind()) {
             case MODULE:
-                location = configuration.utils.getLocationForModule((ModuleElement)element);
+                ModuleElement mdle = (ModuleElement)element;
+                location = configuration.utils.getLocationForModule(mdle);
                 source = DocPaths.DOC_FILES;
                 break;
             case PACKAGE:
-                location = configuration.utils.getLocationForPackage((PackageElement)element);
-                source = DocPath.forPackage((PackageElement)element).resolve(DocPaths.DOC_FILES);
+                PackageElement pkg = (PackageElement)element;
+                location = configuration.utils.getLocationForPackage(pkg);
+                // Note, given that we have a module-specific location,
+                // we want a module-relative path for the source, and not the
+                // standard path that may include the module directory
+                source = DocPath.create(pkg.getQualifiedName().toString().replace('.', '/'))
+                        .resolve(DocPaths.DOC_FILES);
                 break;
             default:
                 throw new AssertionError("unsupported element " + element);
@@ -103,10 +109,10 @@
             DocPath path = null;
             switch (this.element.getKind()) {
                 case MODULE:
-                    path = DocPath.forModule((ModuleElement)this.element);
+                    path = DocPaths.forModule((ModuleElement)this.element);
                     break;
                 case PACKAGE:
-                    path = DocPath.forPackage((PackageElement)this.element);
+                    path = configuration.docPaths.forPackage((PackageElement)this.element);
                     break;
                 default:
                     throw new AssertionError("unknown kind:" + this.element.getKind());
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -113,12 +113,13 @@
      * @param contentTree the content tree to which the help file contents will be added
      */
     protected void addHelpFileContents(Content contentTree) {
+        // Heading
         Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, false, HtmlStyle.title,
-                contents.getContent("doclet.Help_line_1"));
+                contents.getContent("doclet.help.main_heading"));
         Content div = HtmlTree.DIV(HtmlStyle.header, heading);
-        Content line2 = HtmlTree.DIV(HtmlStyle.subTitle,
-                contents.getContent("doclet.Help_line_2"));
-        div.addContent(line2);
+        Content intro = HtmlTree.DIV(HtmlStyle.subTitle,
+                contents.getContent("doclet.help.intro"));
+        div.addContent(intro);
         if (configuration.allowTag(HtmlTag.MAIN)) {
             mainTree.addContent(div);
         } else {
@@ -127,16 +128,18 @@
         HtmlTree htmlTree;
         HtmlTree ul = new HtmlTree(HtmlTag.UL);
         ul.setStyle(HtmlStyle.blockList);
+
+        // Overview
         if (configuration.createoverview) {
             Content overviewHeading = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 contents.overviewLabel);
             htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                     ? HtmlTree.SECTION(overviewHeading)
                     : HtmlTree.LI(HtmlStyle.blockList, overviewHeading);
-            Content line3 = contents.getContent("doclet.Help_line_3",
+            Content overviewBody = contents.getContent("doclet.help.overview.body",
                     links.createLink(DocPaths.overviewSummary(configuration.frames),
-                    configuration.getText("doclet.Overview")));
-            Content overviewPara = HtmlTree.P(line3);
+                    resources.getText("doclet.Overview")));
+            Content overviewPara = HtmlTree.P(overviewBody);
             htmlTree.addContent(overviewPara);
             if (configuration.allowTag(HtmlTag.SECTION)) {
                 ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
@@ -144,54 +147,46 @@
                 ul.addContent(htmlTree);
             }
         }
+
+        // Package
         Content packageHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 contents.packageLabel);
         htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                 ? HtmlTree.SECTION(packageHead)
                 : HtmlTree.LI(HtmlStyle.blockList, packageHead);
-        Content line4 = contents.getContent("doclet.Help_line_4");
-        Content packagePara = HtmlTree.P(line4);
+        Content packageIntro = contents.getContent("doclet.help.package.intro");
+        Content packagePara = HtmlTree.P(packageIntro);
         htmlTree.addContent(packagePara);
         HtmlTree ulPackage = new HtmlTree(HtmlTag.UL);
-        ulPackage.addContent(HtmlTree.LI(
-                contents.interfacesItalic));
-        ulPackage.addContent(HtmlTree.LI(
-                contents.classes));
-        ulPackage.addContent(HtmlTree.LI(
-                contents.enums));
-        ulPackage.addContent(HtmlTree.LI(
-                contents.exceptions));
-        ulPackage.addContent(HtmlTree.LI(
-                contents.errors));
-        ulPackage.addContent(HtmlTree.LI(
-                contents.annotationTypes));
+        ulPackage.addContent(HtmlTree.LI(contents.interfacesItalic));
+        ulPackage.addContent(HtmlTree.LI(contents.classes));
+        ulPackage.addContent(HtmlTree.LI(contents.enums));
+        ulPackage.addContent(HtmlTree.LI(contents.exceptions));
+        ulPackage.addContent(HtmlTree.LI(contents.errors));
+        ulPackage.addContent(HtmlTree.LI(contents.annotationTypes));
         htmlTree.addContent(ulPackage);
         if (configuration.allowTag(HtmlTag.SECTION)) {
             ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
         } else {
             ul.addContent(htmlTree);
         }
+
+        // Class/interface
         Content classHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                contents.getContent("doclet.Help_line_5"));
+                contents.getContent("doclet.help.class_interface.head"));
         htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                 ? HtmlTree.SECTION(classHead)
                 : HtmlTree.LI(HtmlStyle.blockList, classHead);
-        Content line6 = contents.getContent("doclet.Help_line_6");
-        Content classPara = HtmlTree.P(line6);
+        Content classIntro = contents.getContent("doclet.help.class_interface.intro");
+        Content classPara = HtmlTree.P(classIntro);
         htmlTree.addContent(classPara);
         HtmlTree ul1 = new HtmlTree(HtmlTag.UL);
-        ul1.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_line_7")));
-        ul1.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_line_8")));
-        ul1.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_line_9")));
-        ul1.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_line_10")));
-        ul1.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_line_11")));
-        ul1.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_line_12")));
+        ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.inheritance_diagram")));
+        ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.subclasses")));
+        ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.subinterfaces")));
+        ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.implementations")));
+        ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.declaration")));
+        ul1.addContent(HtmlTree.LI(contents.getContent("doclet.help.class_interface.description")));
         htmlTree.addContent(ul1);
         HtmlTree ul2 = new HtmlTree(HtmlTag.UL);
         ul2.addContent(HtmlTree.LI(contents.nestedClassSummary));
@@ -204,72 +199,66 @@
         ul3.addContent(HtmlTree.LI(contents.constructorDetailsLabel));
         ul3.addContent(HtmlTree.LI(contents.methodDetailLabel));
         htmlTree.addContent(ul3);
-        Content line13 = contents.getContent("doclet.Help_line_13");
-        Content para = HtmlTree.P(line13);
+        Content classSummary = contents.getContent("doclet.help.class_interface.summary");
+        Content para = HtmlTree.P(classSummary);
         htmlTree.addContent(para);
         if (configuration.allowTag(HtmlTag.SECTION)) {
             ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
         } else {
             ul.addContent(htmlTree);
         }
-        //Annotation Types
+
+        // Annotation Types
         Content aHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 contents.annotationType);
         htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                 ? HtmlTree.SECTION(aHead)
                 : HtmlTree.LI(HtmlStyle.blockList, aHead);
-        Content aline1 = contents.getContent("doclet.Help_annotation_type_line_1");
-        Content aPara = HtmlTree.P(aline1);
+        Content aIntro = contents.getContent("doclet.help.annotation_type.intro");
+        Content aPara = HtmlTree.P(aIntro);
         htmlTree.addContent(aPara);
         HtmlTree aul = new HtmlTree(HtmlTag.UL);
-        aul.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_annotation_type_line_2")));
-        aul.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_annotation_type_line_3")));
-        aul.addContent(HtmlTree.LI(
-                contents.annotateTypeRequiredMemberSummaryLabel));
-        aul.addContent(HtmlTree.LI(
-                contents.annotateTypeOptionalMemberSummaryLabel));
-        aul.addContent(HtmlTree.LI(
-                contents.annotationTypeMemberDetail));
+        aul.addContent(HtmlTree.LI(contents.getContent("doclet.help.annotation_type.declaration")));
+        aul.addContent(HtmlTree.LI(contents.getContent("doclet.help.annotation_type.description")));
+        aul.addContent(HtmlTree.LI(contents.annotateTypeRequiredMemberSummaryLabel));
+        aul.addContent(HtmlTree.LI(contents.annotateTypeOptionalMemberSummaryLabel));
+        aul.addContent(HtmlTree.LI(contents.annotationTypeMemberDetail));
         htmlTree.addContent(aul);
         if (configuration.allowTag(HtmlTag.SECTION)) {
             ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
         } else {
             ul.addContent(htmlTree);
         }
-        //Enums
-        Content enumHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                contents.enum_);
+
+        // Enums
+        Content enumHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING, contents.enum_);
         htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                 ? HtmlTree.SECTION(enumHead)
                 : HtmlTree.LI(HtmlStyle.blockList, enumHead);
-        Content eline1 = contents.getContent("doclet.Help_enum_line_1");
-        Content enumPara = HtmlTree.P(eline1);
+        Content eIntro = contents.getContent("doclet.help.enum.intro");
+        Content enumPara = HtmlTree.P(eIntro);
         htmlTree.addContent(enumPara);
         HtmlTree eul = new HtmlTree(HtmlTag.UL);
-        eul.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_enum_line_2")));
-        eul.addContent(HtmlTree.LI(
-                contents.getContent("doclet.Help_enum_line_3")));
-        eul.addContent(HtmlTree.LI(
-                contents.enumConstantSummary));
-        eul.addContent(HtmlTree.LI(
-                contents.enumConstantDetailLabel));
+        eul.addContent(HtmlTree.LI(contents.getContent("doclet.help.enum.declaration")));
+        eul.addContent(HtmlTree.LI(contents.getContent("doclet.help.enum.definition")));
+        eul.addContent(HtmlTree.LI(contents.enumConstantSummary));
+        eul.addContent(HtmlTree.LI(contents.enumConstantDetailLabel));
         htmlTree.addContent(eul);
         if (configuration.allowTag(HtmlTag.SECTION)) {
             ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
         } else {
             ul.addContent(htmlTree);
         }
+
+        // Class Use
         if (configuration.classuse) {
             Content useHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                    contents.getContent("doclet.Help_line_14"));
+                    contents.getContent("doclet.help.use.head"));
             htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                     ? HtmlTree.SECTION(useHead)
                     : HtmlTree.LI(HtmlStyle.blockList, useHead);
-            Content line15 = contents.getContent("doclet.Help_line_15");
-            Content usePara = HtmlTree.P(line15);
+            Content useBody = contents.getContent("doclet.help.use.body");
+            Content usePara = HtmlTree.P(useBody);
             htmlTree.addContent(usePara);
             if (configuration.allowTag(HtmlTag.SECTION)) {
                 ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
@@ -277,23 +266,23 @@
                 ul.addContent(htmlTree);
             }
         }
+
+        // Tree
         if (configuration.createtree) {
             Content treeHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                    contents.getContent("doclet.Help_line_16"));
+                    contents.getContent("doclet.help.tree.head"));
             htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                     ? HtmlTree.SECTION(treeHead)
                     : HtmlTree.LI(HtmlStyle.blockList, treeHead);
-            Content line17 = contents.getContent("doclet.Help_line_17_with_tree_link",
+            Content treeIntro = contents.getContent("doclet.help.tree.intro",
                     links.createLink(DocPaths.OVERVIEW_TREE,
                     configuration.getText("doclet.Class_Hierarchy")),
                     HtmlTree.CODE(new StringContent("java.lang.Object")));
-            Content treePara = HtmlTree.P(line17);
+            Content treePara = HtmlTree.P(treeIntro);
             htmlTree.addContent(treePara);
             HtmlTree tul = new HtmlTree(HtmlTag.UL);
-            tul.addContent(HtmlTree.LI(
-                    contents.getContent("doclet.Help_line_18")));
-            tul.addContent(HtmlTree.LI(
-                    contents.getContent("doclet.Help_line_19")));
+            tul.addContent(HtmlTree.LI(contents.getContent("doclet.help.tree.overview")));
+            tul.addContent(HtmlTree.LI(contents.getContent("doclet.help.tree.package")));
             htmlTree.addContent(tul);
             if (configuration.allowTag(HtmlTag.SECTION)) {
                 ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
@@ -301,17 +290,18 @@
                 ul.addContent(htmlTree);
             }
         }
-        if (!(configuration.nodeprecatedlist ||
-                  configuration.nodeprecated)) {
+
+        // Deprecated
+        if (!(configuration.nodeprecatedlist || configuration.nodeprecated)) {
             Content dHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                     contents.deprecatedAPI);
             htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                     ? HtmlTree.SECTION(dHead)
                     : HtmlTree.LI(HtmlStyle.blockList, dHead);
-            Content line20 = contents.getContent("doclet.Help_line_20_with_deprecated_api_link",
+            Content deprBody = contents.getContent("doclet.help.deprecated.body",
                     links.createLink(DocPaths.DEPRECATED_LIST,
                     configuration.getText("doclet.Deprecated_API")));
-            Content dPara = HtmlTree.P(line20);
+            Content dPara = HtmlTree.P(deprBody);
             htmlTree.addContent(dPara);
             if (configuration.allowTag(HtmlTag.SECTION)) {
                 ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
@@ -319,6 +309,8 @@
                 ul.addContent(htmlTree);
             }
         }
+
+        // Index
         if (configuration.createindex) {
             Content indexlink;
             if (configuration.splitindex) {
@@ -329,12 +321,12 @@
                         configuration.getText("doclet.Index"));
             }
             Content indexHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                    contents.getContent("doclet.Help_line_21"));
+                    contents.getContent("doclet.help.index.head"));
             htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                     ? HtmlTree.SECTION(indexHead)
                     : HtmlTree.LI(HtmlStyle.blockList, indexHead);
-            Content line22 = contents.getContent("doclet.Help_line_22", indexlink);
-            Content indexPara = HtmlTree.P(line22);
+            Content indexBody = contents.getContent("doclet.help.index.body", indexlink);
+            Content indexPara = HtmlTree.P(indexBody);
             htmlTree.addContent(indexPara);
             if (configuration.allowTag(HtmlTag.SECTION)) {
                 ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
@@ -342,13 +334,15 @@
                 ul.addContent(htmlTree);
             }
         }
+
+        // Prev/Next
         Content prevHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                contents.getContent("doclet.Help_line_23"));
+                contents.getContent("doclet.help.prev_next.head"));
         htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                 ? HtmlTree.SECTION(prevHead)
                 : HtmlTree.LI(HtmlStyle.blockList, prevHead);
-        Content line24 = contents.getContent("doclet.Help_line_24");
-        Content prevPara = HtmlTree.P(line24);
+        Content prevBody = contents.getContent("doclet.help.prev_next.body");
+        Content prevPara = HtmlTree.P(prevBody);
         htmlTree.addContent(prevPara);
         if (configuration.allowTag(HtmlTag.SECTION)) {
             ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
@@ -356,14 +350,15 @@
             ul.addContent(htmlTree);
         }
 
+        // Frames
         if (configuration.frames) {
             Content frameHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                    contents.getContent("doclet.Help_line_25"));
+                    contents.getContent("doclet.help.frames.head"));
             htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                     ? HtmlTree.SECTION(frameHead)
                     : HtmlTree.LI(HtmlStyle.blockList, frameHead);
-            Content line26 = contents.getContent("doclet.Help_line_26");
-            Content framePara = HtmlTree.P(line26);
+            Content framesBody = contents.getContent("doclet.help.frames.body");
+            Content framePara = HtmlTree.P(framesBody);
             htmlTree.addContent(framePara);
         }
 
@@ -373,51 +368,58 @@
             ul.addContent(htmlTree);
         }
 
+        // All Classes
         Content allclassesHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 contents.allClassesLabel);
         htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                 ? HtmlTree.SECTION(allclassesHead)
                 : HtmlTree.LI(HtmlStyle.blockList, allclassesHead);
-        Content line27 = contents.getContent("doclet.Help_line_27",
+        Content allClassesBody = contents.getContent("doclet.help.all_classes.body",
                 links.createLink(DocPaths.AllClasses(configuration.frames),
                 resources.getText("doclet.All_Classes")));
-        Content allclassesPara = HtmlTree.P(line27);
+        Content allclassesPara = HtmlTree.P(allClassesBody);
         htmlTree.addContent(allclassesPara);
         if (configuration.allowTag(HtmlTag.SECTION)) {
             ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
         } else {
             ul.addContent(htmlTree);
         }
+
+        // Serialized Form
         Content sHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 contents.serializedForm);
         htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                 ? HtmlTree.SECTION(sHead)
                 : HtmlTree.LI(HtmlStyle.blockList, sHead);
-        Content line28 = contents.getContent("doclet.Help_line_28");
-        Content serialPara = HtmlTree.P(line28);
+        Content serialBody = contents.getContent("doclet.help.serial_form.body");
+        Content serialPara = HtmlTree.P(serialBody);
         htmlTree.addContent(serialPara);
         if (configuration.allowTag(HtmlTag.SECTION)) {
             ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
         } else {
             ul.addContent(htmlTree);
         }
+
+        // Constant Field Values
         Content constHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 contents.constantsSummaryTitle);
         htmlTree = (configuration.allowTag(HtmlTag.SECTION))
                 ? HtmlTree.SECTION(constHead)
                 : HtmlTree.LI(HtmlStyle.blockList, constHead);
-        Content line29 = contents.getContent("doclet.Help_line_29",
+        Content constantsBody = contents.getContent("doclet.help.constants.body",
                 links.createLink(DocPaths.CONSTANT_VALUES,
                 resources.getText("doclet.Constants_Summary")));
-        Content constPara = HtmlTree.P(line29);
+        Content constPara = HtmlTree.P(constantsBody);
         htmlTree.addContent(constPara);
         if (configuration.allowTag(HtmlTag.SECTION)) {
             ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
         } else {
             ul.addContent(htmlTree);
         }
+
         Content divContent = HtmlTree.DIV(HtmlStyle.contentContainer, ul);
-        Content line30 = HtmlTree.SPAN(HtmlStyle.emphasizedPhrase, contents.getContent("doclet.Help_line_30"));
+        Content line30 = HtmlTree.SPAN(HtmlStyle.emphasizedPhrase,
+                contents.getContent("doclet.help.footnote"));
         divContent.addContent(line30);
         if (configuration.allowTag(HtmlTag.MAIN)) {
             mainTree.addContent(divContent);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Thu Feb 08 22:34:20 2018 -0800
@@ -210,6 +210,12 @@
     public HtmlVersion htmlVersion = null;
 
     /**
+     * Flag to enable/disable use of module directories when generating docs for modules
+     * Default: on (module directories are enabled).
+     */
+    public boolean useModuleDirectories = true;
+
+    /**
      * Collected set of doclint options
      */
     public Map<Doclet.Option, String> doclintOpts = new LinkedHashMap<>();
@@ -245,6 +251,8 @@
 
     protected final Messages messages;
 
+    protected DocPaths docPaths;
+
     /**
      * Creates an object to hold the configuration for a doclet.
      *
@@ -357,6 +365,7 @@
                 }
             }
         }
+        docPaths = new DocPaths(utils, useModuleDirectories);
         setCreateOverview();
         setTopFile(docEnv);
         workArounds.initDocLint(doclintOpts.values(), tagletManager.getCustomTagNames(),
@@ -406,15 +415,15 @@
             topFile = DocPaths.overviewSummary(frames);
         } else {
             if (showModules) {
-                topFile = DocPath.empty.resolve(DocPaths.moduleSummary(modules.first()));
+                topFile = DocPath.empty.resolve(docPaths.moduleSummary(modules.first()));
             } else if (packages.size() == 1 && packages.first().isUnnamed()) {
                 List<TypeElement> classes = new ArrayList<>(getIncludedTypeElements());
                 if (!classes.isEmpty()) {
                     TypeElement te = getValidClass(classes);
-                    topFile = DocPath.forClass(utils, te);
+                    topFile = docPaths.forClass(te);
                 }
             } else if (!packages.isEmpty()) {
-                topFile = DocPath.forPackage(packages.first()).resolve(DocPaths.PACKAGE_SUMMARY);
+                topFile = docPaths.forPackage(packages.first()).resolve(DocPaths.PACKAGE_SUMMARY);
             }
         }
     }
@@ -837,6 +846,13 @@
                     }
                     return true;
                 }
+            },
+            new XOption(resources, "--no-module-directories") {
+                @Override
+                public boolean process(String option, List<String> args) {
+                    useModuleDirectories = false;
+                    return true;
+                }
             }
         };
         Set<Doclet.Option> oset = new TreeSet<>();
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java	Thu Feb 08 22:34:20 2018 -0800
@@ -241,29 +241,19 @@
             throws DocletException {
         List<TypeElement> list = new ArrayList<>(arr);
         ListIterator<TypeElement> iterator = list.listIterator();
-        TypeElement klass = null;
-        while (iterator.hasNext()) {
-            TypeElement prev = iterator.hasPrevious() ? klass : null;
-            klass = iterator.next();
-            TypeElement next = iterator.nextIndex() == list.size()
-                    ? null : list.get(iterator.nextIndex());
-
+        for (TypeElement klass : list) {
             if (utils.isHidden(klass) ||
                     !(configuration.isGeneratedDoc(klass) && utils.isIncluded(klass))) {
                 continue;
             }
-
             if (utils.isAnnotationType(klass)) {
                 AbstractBuilder annotationTypeBuilder =
                     configuration.getBuilderFactory()
-                        .getAnnotationTypeBuilder(klass,
-                            prev == null ? null : prev.asType(),
-                            next == null ? null : next.asType());
+                        .getAnnotationTypeBuilder(klass);
                 annotationTypeBuilder.build();
             } else {
                 AbstractBuilder classBuilder =
-                    configuration.getBuilderFactory().getClassBuilder(klass,
-                            prev, next, classtree);
+                    configuration.getBuilderFactory().getClassBuilder(klass, classtree);
                 classBuilder.build();
             }
         }
@@ -278,7 +268,6 @@
             if (configuration.frames  && configuration.modules.size() > 1) {
                 ModuleIndexFrameWriter.generate(configuration);
             }
-            ModuleElement prevModule = null, nextModule;
             List<ModuleElement> mdles = new ArrayList<>(configuration.modulePackages.keySet());
             int i = 0;
             for (ModuleElement mdle : mdles) {
@@ -286,12 +275,9 @@
                     ModulePackageIndexFrameWriter.generate(configuration, mdle);
                     ModuleFrameWriter.generate(configuration, mdle);
                 }
-                nextModule = (i + 1 < mdles.size()) ? mdles.get(i + 1) : null;
                 AbstractBuilder moduleSummaryBuilder =
-                        configuration.getBuilderFactory().getModuleSummaryBuilder(
-                        mdle, prevModule, nextModule);
+                        configuration.getBuilderFactory().getModuleSummaryBuilder(mdle);
                 moduleSummaryBuilder.build();
-                prevModule = mdle;
                 i++;
             }
         }
@@ -317,7 +303,6 @@
             PackageIndexFrameWriter.generate(configuration);
         }
         List<PackageElement> pList = new ArrayList<>(packages);
-        PackageElement prev = null;
         for (int i = 0 ; i < pList.size() ; i++) {
             // if -nodeprecated option is set and the package is marked as
             // deprecated, do not generate the package-summary.html, package-frame.html
@@ -327,24 +312,12 @@
                 if (configuration.frames) {
                     PackageFrameWriter.generate(configuration, pkg);
                 }
-                int nexti = i + 1;
-                PackageElement next = null;
-                if (nexti < pList.size()) {
-                    next = pList.get(nexti);
-                    // If the next package is unnamed package, skip 2 ahead if possible
-                    if (next.isUnnamed() && ++nexti < pList.size()) {
-                       next = pList.get(nexti);
-                    }
-                }
                 AbstractBuilder packageSummaryBuilder =
-                        configuration.getBuilderFactory().getPackageSummaryBuilder(
-                        pkg, prev, next);
+                        configuration.getBuilderFactory().getPackageSummaryBuilder(pkg);
                 packageSummaryBuilder.build();
                 if (configuration.createtree) {
-                    PackageTreeWriter.generate(configuration, pkg, prev, next,
-                            configuration.nodeprecated);
+                    PackageTreeWriter.generate(configuration, pkg, configuration.nodeprecated);
                 }
-                prev = pkg;
             }
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -155,6 +155,8 @@
 
     protected final Links links;
 
+    protected final DocPaths docPaths;
+
     /**
      * To check whether annotation heading is printed or not.
      */
@@ -202,6 +204,7 @@
         this.path = path;
         this.pathToRoot = path.parent().invert();
         this.filename = path.basename();
+        this.docPaths = configuration.docPaths;
 
         messages.notice("doclet.Generating_0",
             DocFile.createFileForOutput(configuration, path).getPath());
@@ -399,7 +402,7 @@
      */
     public Content getTargetModuleLink(String target, Content label, ModuleElement mdle) {
         return links.createLink(pathToRoot.resolve(
-                DocPaths.moduleSummary(mdle)), label, "", target);
+                docPaths.moduleSummary(mdle)), label, "", target);
     }
 
     /**
@@ -572,8 +575,8 @@
             } else {
                 tree.addContent(navDiv);
             }
-            Content ulNav = HtmlTree.UL(HtmlStyle.navList, getNavLinkPrevious(), getNavLinkNext());
-            Content subDiv = HtmlTree.DIV(HtmlStyle.subNav, ulNav);
+            HtmlTree subDiv = new HtmlTree(HtmlTag.DIV);
+            subDiv.setStyle(HtmlStyle.subNav);
             if (configuration.frames) {
                 Content ulFrames = HtmlTree.UL(HtmlStyle.navList,
                     getNavShowLists(), getNavHideLists(filename));
@@ -620,26 +623,6 @@
     }
 
     /**
-     * Get the word "NEXT" to indicate that no link is available.  Override
-     * this method to customize next link.
-     *
-     * @return a content tree for the link
-     */
-    protected Content getNavLinkNext() {
-        return getNavLinkNext(null);
-    }
-
-    /**
-     * Get the word "PREV" to indicate that no link is available.  Override
-     * this method to customize prev link.
-     *
-     * @return a content tree for the link
-     */
-    protected Content getNavLinkPrevious() {
-        return getNavLinkPrevious(null);
-    }
-
-    /**
      * Do nothing. This is the default method.
      */
     protected void addSummaryDetailLinks(Content navDiv) {
@@ -712,39 +695,6 @@
     }
 
     /**
-     * Get link for previous file.
-     *
-     * @param prev File name for the prev link
-     * @return a content tree for the link
-     */
-    public Content getNavLinkPrevious(DocPath prev) {
-        Content li;
-        if (prev != null) {
-            li = HtmlTree.LI(links.createLink(prev, contents.prevLabel, "", ""));
-        }
-        else
-            li = HtmlTree.LI(contents.prevLabel);
-        return li;
-    }
-
-    /**
-     * Get link for next file.  If next is null, just print the label
-     * without linking it anywhere.
-     *
-     * @param next File name for the next link
-     * @return a content tree for the link
-     */
-    public Content getNavLinkNext(DocPath next) {
-        Content li;
-        if (next != null) {
-            li = HtmlTree.LI(links.createLink(next, contents.nextLabel, "", ""));
-        }
-        else
-            li = HtmlTree.LI(contents.nextLabel);
-        return li;
-    }
-
-    /**
      * Get "FRAMES" link, to switch to the frame version of the output.
      *
      * @param link File to be linked, "index.html"
@@ -949,7 +899,7 @@
      * @param name File name, to which path string is.
      */
     protected DocPath pathString(PackageElement packageElement, DocPath name) {
-        return pathToRoot.resolve(DocPath.forPackage(packageElement).resolve(name));
+        return pathToRoot.resolve(docPaths.forPackage(packageElement).resolve(name));
     }
 
     /**
@@ -1021,7 +971,7 @@
     public Content getModuleLink(ModuleElement mdle, Content label) {
         boolean included = utils.isIncluded(mdle);
         return (included)
-                ? links.createLink(pathToRoot.resolve(DocPaths.moduleSummary(mdle)), label, "", "")
+                ? links.createLink(pathToRoot.resolve(docPaths.moduleSummary(mdle)), label, "", "")
                 : label;
     }
 
@@ -1050,7 +1000,7 @@
         }
         DocPath href = pathToRoot
                 .resolve(DocPaths.SOURCE_OUTPUT)
-                .resolve(DocPath.forClass(utils, te));
+                .resolve(docPaths.forClass(te));
         Content linkContent = links.createLink(href
                 .fragment(SourceToHTMLConverter.getAnchorName(utils, typeElement)), label, "", "");
         htmltree.addContent(linkContent);
@@ -1139,7 +1089,7 @@
 
     public DocLink getCrossModuleLink(String mdleName) {
         return configuration.extern.getExternalLink(mdleName, pathToRoot,
-            DocPaths.moduleSummary(mdleName).getPath());
+            docPaths.moduleSummary(mdleName).getPath());
     }
 
     /**
@@ -1998,22 +1948,22 @@
         DocPath redirectPathFromRoot = new SimpleElementVisitor9<DocPath, Void>() {
             @Override
             public DocPath visitType(TypeElement e, Void p) {
-                return DocPath.forPackage(utils.containingPackage(e));
+                return docPaths.forPackage(utils.containingPackage(e));
             }
 
             @Override
             public DocPath visitPackage(PackageElement e, Void p) {
-                return DocPath.forPackage(e);
+                return docPaths.forPackage(e);
             }
 
             @Override
             public DocPath visitVariable(VariableElement e, Void p) {
-                return DocPath.forPackage(utils.containingPackage(e));
+                return docPaths.forPackage(utils.containingPackage(e));
             }
 
             @Override
             public DocPath visitExecutable(ExecutableElement e, Void p) {
-                return DocPath.forPackage(utils.containingPackage(e));
+                return docPaths.forPackage(utils.containingPackage(e));
             }
 
             @Override
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/LinkFactoryImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/LinkFactoryImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -35,8 +35,9 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.ContentBuilder;
 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
 import jdk.javadoc.internal.doclets.toolkit.Content;
+import jdk.javadoc.internal.doclets.toolkit.Resources;
 import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
-import jdk.javadoc.internal.doclets.toolkit.util.Utils;
+import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
 import jdk.javadoc.internal.doclets.toolkit.util.links.LinkFactory;
 import jdk.javadoc.internal.doclets.toolkit.util.links.LinkInfo;
 
@@ -53,9 +54,12 @@
 public class LinkFactoryImpl extends LinkFactory {
 
     private final HtmlDocletWriter m_writer;
+    private final DocPaths docPaths;
 
     public LinkFactoryImpl(HtmlDocletWriter writer) {
+        super(writer.configuration.utils);
         m_writer = writer;
+        docPaths = writer.configuration.docPaths;
     }
 
     /**
@@ -72,7 +76,6 @@
     @Override
     protected Content getClassLink(LinkInfo linkInfo) {
         BaseConfiguration configuration = m_writer.configuration;
-        Utils utils = configuration.utils;
         LinkInfoImpl classLinkInfo = (LinkInfoImpl) linkInfo;
         boolean noLabel = linkInfo.label == null || linkInfo.label.isEmpty();
         TypeElement typeElement = classLinkInfo.typeElement;
@@ -84,14 +87,14 @@
                      utils.isTypeVariable(utils.getComponentType(classLinkInfo.type));
             title = getClassToolTip(typeElement, isTypeLink);
         }
-        Content label = classLinkInfo.getClassLinkLabel(m_writer.configuration);
+        Content label = classLinkInfo.getClassLinkLabel(configuration);
 
         Content link = new ContentBuilder();
         if (utils.isIncluded(typeElement)) {
             if (configuration.isGeneratedDoc(typeElement)) {
                 DocPath filename = getPath(classLinkInfo);
                 if (linkInfo.linkToSelf ||
-                                !(DocPath.forName(utils, typeElement)).equals(m_writer.filename)) {
+                                !(docPaths.forName(typeElement)).equals(m_writer.filename)) {
                         link.addContent(m_writer.links.createLink(
                                 filename.fragment(classLinkInfo.where),
                                 label,
@@ -140,7 +143,6 @@
 
     @Override
     public Content getTypeAnnotationLinks(LinkInfo linkInfo) {
-        Utils utils = ((LinkInfoImpl)linkInfo).utils;
         ContentBuilder links = new ContentBuilder();
         List<? extends AnnotationMirror> annotations;
         if (utils.isAnnotated(linkInfo.type)) {
@@ -191,22 +193,21 @@
      * @return the tool tip for the appropriate class.
      */
     private String getClassToolTip(TypeElement typeElement, boolean isTypeLink) {
-        BaseConfiguration configuration = m_writer.configuration;
-        Utils utils = configuration.utils;
+        Resources resources = m_writer.configuration.getResources();
         if (isTypeLink) {
-            return configuration.getText("doclet.Href_Type_Param_Title",
+            return resources.getText("doclet.Href_Type_Param_Title",
                     utils.getSimpleName(typeElement));
         } else if (utils.isInterface(typeElement)){
-            return configuration.getText("doclet.Href_Interface_Title",
+            return resources.getText("doclet.Href_Interface_Title",
                 utils.getPackageName(utils.containingPackage(typeElement)));
         } else if (utils.isAnnotationType(typeElement)) {
-            return configuration.getText("doclet.Href_Annotation_Title",
+            return resources.getText("doclet.Href_Annotation_Title",
                 utils.getPackageName(utils.containingPackage(typeElement)));
         } else if (utils.isEnum(typeElement)) {
-            return configuration.getText("doclet.Href_Enum_Title",
+            return resources.getText("doclet.Href_Enum_Title",
                 utils.getPackageName(utils.containingPackage(typeElement)));
         } else {
-            return configuration.getText("doclet.Href_Class_Title",
+            return resources.getText("doclet.Href_Class_Title",
                 utils.getPackageName(utils.containingPackage(typeElement)));
         }
     }
@@ -223,8 +224,8 @@
         if (linkInfo.context == LinkInfoImpl.Kind.PACKAGE_FRAME) {
             //Not really necessary to do this but we want to be consistent
             //with 1.4.2 output.
-            return DocPath.forName(linkInfo.utils, linkInfo.typeElement);
+            return docPaths.forName(linkInfo.typeElement);
         }
-        return m_writer.pathToRoot.resolve(DocPath.forClass(linkInfo.utils, linkInfo.typeElement));
+        return m_writer.pathToRoot.resolve(docPaths.forClass(linkInfo.typeElement));
     }
 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleFrameWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleFrameWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -76,7 +76,7 @@
      * @param moduleElement moduleElement under consideration.
      */
     public ModuleFrameWriter(HtmlConfiguration configuration, ModuleElement moduleElement) {
-        super(configuration, DocPaths.moduleTypeFrame(moduleElement));
+        super(configuration, configuration.docPaths.moduleTypeFrame(moduleElement));
         this.mdle = moduleElement;
         if (configuration.getSpecifiedPackageElements().isEmpty()) {
             documentedClasses = new TreeSet<>(utils.makeGeneralPurposeComparator());
@@ -101,7 +101,7 @@
                 ? HtmlTree.MAIN()
                 : body;
         Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, HtmlStyle.bar,
-                mdlgen.links.createLink(DocPaths.moduleSummary(moduleElement), mdlLabel, "", "classFrame"));
+                mdlgen.links.createLink(configuration.docPaths.moduleSummary(moduleElement), mdlLabel, "", "classFrame"));
         htmlTree.addContent(heading);
         HtmlTree div = new HtmlTree(HtmlTag.DIV);
         div.setStyle(HtmlStyle.indexContainer);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexFrameWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexFrameWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -114,9 +114,9 @@
     }
 
     private Content getModuleFramesHyperLink(ModuleElement mdle, Content label, String target) {
-        DocLink mdlLink = new DocLink(DocPaths.moduleFrame(mdle));
-        DocLink mtFrameLink = new DocLink(DocPaths.moduleTypeFrame(mdle));
-        DocLink cFrameLink = new DocLink(DocPaths.moduleSummary(mdle));
+        DocLink mdlLink = new DocLink(docPaths.moduleFrame(mdle));
+        DocLink mtFrameLink = new DocLink(docPaths.moduleTypeFrame(mdle));
+        DocLink cFrameLink = new DocLink(docPaths.moduleSummary(mdle));
         HtmlTree anchor = HtmlTree.A(mdlLink.toString(), label);
         String onclickStr = "updateModuleFrame('" + mtFrameLink + "','" + cFrameLink + "');";
         anchor.addAttr(HtmlAttr.TARGET, target);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModulePackageIndexFrameWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModulePackageIndexFrameWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -76,7 +76,7 @@
      * @param mdle the module being documented
      */
     public static void generate(HtmlConfiguration configuration, ModuleElement mdle) throws DocFileIOException {
-        DocPath filename = DocPaths.moduleFrame(mdle);
+        DocPath filename = configuration.docPaths.moduleFrame(mdle);
         ModulePackageIndexFrameWriter modpackgen = new ModulePackageIndexFrameWriter(configuration, filename);
         modpackgen.buildModulePackagesIndexFile("doclet.Window_Overview", false, mdle);
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -50,7 +50,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.Links;
 import jdk.javadoc.internal.doclets.formats.html.markup.RawHtml;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.toolkit.Content;
@@ -74,16 +73,6 @@
 public class ModuleWriterImpl extends HtmlDocletWriter implements ModuleSummaryWriter {
 
     /**
-     * The prev module name in the alpha-order list.
-     */
-    protected ModuleElement prevModule;
-
-    /**
-     * The next module name in the alpha-order list.
-     */
-    protected ModuleElement nextModule;
-
-    /**
      * The module being documented.
      */
     protected ModuleElement mdle;
@@ -187,14 +176,9 @@
      *
      * @param configuration the configuration of the doclet.
      * @param mdle        Module under consideration.
-     * @param prevModule   Previous module in the sorted array.
-     * @param nextModule   Next module in the sorted array.
      */
-    public ModuleWriterImpl(HtmlConfiguration configuration,
-            ModuleElement mdle, ModuleElement prevModule, ModuleElement nextModule) {
-        super(configuration, DocPaths.moduleSummary(mdle));
-        this.prevModule = prevModule;
-        this.nextModule = nextModule;
+    public ModuleWriterImpl(HtmlConfiguration configuration, ModuleElement mdle) {
+        super(configuration, configuration.docPaths.moduleSummary(mdle));
         this.mdle = mdle;
         this.moduleMode = configuration.docEnv.getModuleMode();
         computeModulesData();
@@ -1044,38 +1028,4 @@
         Content li = HtmlTree.LI(HtmlStyle.navBarCell1Rev, contents.moduleLabel);
         return li;
     }
-
-    /**
-     * Get "PREV MODULE" link in the navigation bar.
-     *
-     * @return a content tree for the previous link
-     */
-    @Override
-    public Content getNavLinkPrevious() {
-        Content li;
-        if (prevModule == null) {
-            li = HtmlTree.LI(contents.prevModuleLabel);
-        } else {
-            li = HtmlTree.LI(links.createLink(pathToRoot.resolve(DocPaths.moduleSummary(
-                    prevModule)), contents.prevModuleLabel, "", ""));
-        }
-        return li;
-    }
-
-    /**
-     * Get "NEXT MODULE" link in the navigation bar.
-     *
-     * @return a content tree for the next link
-     */
-    @Override
-    public Content getNavLinkNext() {
-        Content li;
-        if (nextModule == null) {
-            li = HtmlTree.LI(contents.nextModuleLabel);
-        } else {
-            li = HtmlTree.LI(links.createLink(pathToRoot.resolve(DocPaths.moduleSummary(
-                    nextModule)), contents.nextModuleLabel, "", ""));
-        }
-        return li;
-    }
 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageFrameWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageFrameWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,6 @@
 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
 import jdk.javadoc.internal.doclets.toolkit.Content;
 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
-import jdk.javadoc.internal.doclets.toolkit.util.DocPath;
 import jdk.javadoc.internal.doclets.toolkit.util.DocPaths;
 
 /**
@@ -79,7 +78,8 @@
      * @param packageElement PackageElement under consideration.
      */
     public PackageFrameWriter(HtmlConfiguration configuration, PackageElement packageElement) {
-        super(configuration, DocPath.forPackage(packageElement).resolve(DocPaths.PACKAGE_FRAME));
+        super(configuration,
+                configuration.docPaths.forPackage(packageElement).resolve(DocPaths.PACKAGE_FRAME));
         this.packageElement = packageElement;
         if (configuration.getSpecifiedPackageElements().isEmpty()) {
             documentedClasses = new TreeSet<>(utils.makeGeneralPurposeComparator());
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageTreeWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageTreeWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -31,7 +31,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.Links;
 import jdk.javadoc.internal.doclets.toolkit.Content;
 import jdk.javadoc.internal.doclets.toolkit.util.ClassTree;
 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
@@ -59,32 +58,15 @@
     protected PackageElement packageElement;
 
     /**
-     * The previous package name in the alpha-order list.
-     */
-    protected PackageElement prev;
-
-    /**
-     * The next package name in the alpha-order list.
-     */
-    protected PackageElement next;
-
-    /**
      * Constructor.
      * @param configuration the configuration
      * @param path the docpath to generate files into
      * @param packageElement the current package
-     * @param prev the previous package
-     * @param next the next package
      */
-    public PackageTreeWriter(HtmlConfiguration configuration,
-                             DocPath path,
-                             PackageElement packageElement,
-                             PackageElement prev, PackageElement next) {
+    public PackageTreeWriter(HtmlConfiguration configuration, DocPath path, PackageElement packageElement) {
         super(configuration, path,
               new ClassTree(configuration.typeElementCatalog.allClasses(packageElement), configuration));
         this.packageElement = packageElement;
-        this.prev = prev;
-        this.next = next;
     }
 
     /**
@@ -93,18 +75,15 @@
      *
      * @param configuration the configuration for this run.
      * @param pkg      Package for which tree file is to be generated.
-     * @param prev     Previous package in the alpha-ordered list.
-     * @param next     Next package in the alpha-ordered list.
      * @param noDeprecated  If true, do not generate any information for
      * deprecated classe or interfaces.
      * @throws DocFileIOException if there is a problem generating the package tree page
      */
     public static void generate(HtmlConfiguration configuration,
-                                PackageElement pkg, PackageElement prev,
-                                PackageElement next, boolean noDeprecated)
+                                PackageElement pkg, boolean noDeprecated)
             throws DocFileIOException {
-        DocPath path = DocPath.forPackage(pkg).resolve(DocPaths.PACKAGE_TREE);
-        PackageTreeWriter packgen = new PackageTreeWriter(configuration, path, pkg, prev, next);
+        DocPath path = configuration.docPaths.forPackage(pkg).resolve(DocPaths.PACKAGE_TREE);
+        PackageTreeWriter packgen = new PackageTreeWriter(configuration, path, pkg);
         packgen.generatePackageTreeFile();
     }
 
@@ -183,36 +162,6 @@
     }
 
     /**
-     * Get link for the previous package tree file.
-     *
-     * @return a content tree for the link
-     */
-    @Override
-    protected Content getNavLinkPrevious() {
-        if (prev == null) {
-            return getNavLinkPrevious(null);
-        } else {
-            DocPath path = DocPath.relativePath(packageElement, prev);
-            return getNavLinkPrevious(path.resolve(DocPaths.PACKAGE_TREE));
-        }
-    }
-
-    /**
-     * Get link for the next package tree file.
-     *
-     * @return a content tree for the link
-     */
-    @Override
-    protected Content getNavLinkNext() {
-        if (next == null) {
-            return getNavLinkNext(null);
-        } else {
-            DocPath path = DocPath.relativePath(packageElement, next);
-            return getNavLinkNext(path.resolve(DocPaths.PACKAGE_TREE));
-        }
-    }
-
-    /**
      * Get the module link.
      *
      * @return a content tree for the module link
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageUseWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageUseWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -75,7 +75,7 @@
     public PackageUseWriter(HtmlConfiguration configuration,
                             ClassUseMapper mapper, DocPath filename,
                             PackageElement pkgElement) {
-        super(configuration, DocPath.forPackage(pkgElement).resolve(filename));
+        super(configuration, configuration.docPaths.forPackage(pkgElement).resolve(filename));
         this.packageElement = pkgElement;
 
         // by examining all classes in this package, find what packages
@@ -221,7 +221,7 @@
                     .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colLast);
             for (TypeElement te : usingPackageToUsedClasses.get(packageName)) {
                 DocPath dp = pathString(te,
-                        DocPaths.CLASS_USE.resolve(DocPath.forName(utils, te)));
+                        DocPaths.CLASS_USE.resolve(docPaths.forName(te)));
                 Content stringContent = new StringContent(utils.getSimpleName(te));
                 Content typeContent = links.createLink(dp.fragment(getPackageAnchorName(usingPackage)),
                         stringContent);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageWriterImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -40,7 +40,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.Links;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.toolkit.Content;
 import jdk.javadoc.internal.doclets.toolkit.PackageSummaryWriter;
@@ -66,16 +65,6 @@
     implements PackageSummaryWriter {
 
     /**
-     * The prev package name in the alpha-order list.
-     */
-    protected PackageElement prev;
-
-    /**
-     * The next package name in the alpha-order list.
-     */
-    protected PackageElement next;
-
-    /**
      * The package being documented.
      */
     protected PackageElement packageElement;
@@ -100,16 +89,11 @@
      *
      * @param configuration the configuration of the doclet.
      * @param packageElement    PackageElement under consideration.
-     * @param prev          Previous package in the sorted array.
-     * @param next            Next package in the sorted array.
      */
-    public PackageWriterImpl(HtmlConfiguration configuration,
-            PackageElement packageElement, PackageElement prev, PackageElement next) {
-        super(configuration, DocPath
-                .forPackage(packageElement)
+    public PackageWriterImpl(HtmlConfiguration configuration, PackageElement packageElement) {
+        super(configuration,
+                configuration.docPaths.forPackage(packageElement)
                 .resolve(DocPaths.PACKAGE_SUMMARY));
-        this.prev = prev;
-        this.next = next;
         this.packageElement = packageElement;
     }
 
@@ -392,42 +376,6 @@
     }
 
     /**
-     * Get "PREV PACKAGE" link in the navigation bar.
-     *
-     * @return a content tree for the previous link
-     */
-    @Override
-    public Content getNavLinkPrevious() {
-        Content li;
-        if (prev == null) {
-            li = HtmlTree.LI(contents.prevPackageLabel);
-        } else {
-            DocPath p = DocPath.relativePath(packageElement, prev);
-            li = HtmlTree.LI(links.createLink(p.resolve(DocPaths.PACKAGE_SUMMARY),
-                contents.prevPackageLabel, "", ""));
-        }
-        return li;
-    }
-
-    /**
-     * Get "NEXT PACKAGE" link in the navigation bar.
-     *
-     * @return a content tree for the next link
-     */
-    @Override
-    public Content getNavLinkNext() {
-        Content li;
-        if (next == null) {
-            li = HtmlTree.LI(contents.nextPackageLabel);
-        } else {
-            DocPath p = DocPath.relativePath(packageElement, next);
-            li = HtmlTree.LI(links.createLink(p.resolve(DocPaths.PACKAGE_SUMMARY),
-                contents.nextPackageLabel, "", ""));
-        }
-        return li;
-    }
-
-    /**
      * Get "Tree" link in the navigation bar. This will be link to the package
      * tree file.
      *
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -182,7 +182,7 @@
             int lineno = 1;
             String line;
             relativePath = DocPaths.SOURCE_OUTPUT
-                    .resolve(DocPath.forPackage(utils, te))
+                    .resolve(configuration.docPaths.forPackage(te))
                     .invert();
             Content body = getHeader();
             Content pre = new HtmlTree(HtmlTag.PRE);
@@ -196,7 +196,7 @@
             addBlankLines(pre);
             Content div = HtmlTree.DIV(HtmlStyle.sourceContainer, pre);
             body.addContent((configuration.allowTag(HtmlTag.MAIN)) ? HtmlTree.MAIN(div) : div);
-            writeToFile(body, outputdir.resolve(DocPath.forClass(utils, te)));
+            writeToFile(body, outputdir.resolve(configuration.docPaths.forClass(te)));
         } catch (IOException e) {
             String message = resources.getText("doclet.exception.read.file", fo.getName());
             throw new SimpleDocletException(message, e);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SplitIndexWriter.java	Thu Feb 08 22:34:20 2018 -0800
@@ -35,7 +35,6 @@
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlStyle;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTag;
 import jdk.javadoc.internal.doclets.formats.html.markup.HtmlTree;
-import jdk.javadoc.internal.doclets.formats.html.markup.Links;
 import jdk.javadoc.internal.doclets.formats.html.markup.StringContent;
 import jdk.javadoc.internal.doclets.toolkit.Content;
 import jdk.javadoc.internal.doclets.toolkit.util.DocFileIOException;
@@ -60,16 +59,6 @@
  */
 public class SplitIndexWriter extends AbstractIndexWriter {
 
-    /**
-     * Previous unicode character index in the built index.
-     */
-    protected int prev;
-
-    /**
-     * Next unicode character in the built index.
-     */
-    protected int next;
-
     private final List<Character> indexElements;
 
     /**
@@ -80,18 +69,13 @@
      * @param path       Path to the file which is getting generated.
      * @param indexbuilder Unicode based Index from {@link IndexBuilder}
      * @param elements the collection of characters for which to generate index files
-     * @param prev  the previous character that was indexed
-     * @param next  the next character to be indexed
      */
     public SplitIndexWriter(HtmlConfiguration configuration,
                             DocPath path,
                             IndexBuilder indexbuilder,
-                            Collection<Character> elements,
-                            int prev, int next) {
+                            Collection<Character> elements) {
         super(configuration, path, indexbuilder);
         this.indexElements = new ArrayList<>(elements);
-        this.prev = prev;
-        this.next = next;
     }
 
     /**
@@ -117,7 +101,7 @@
             DocPath filename = DocPaths.indexN(li.nextIndex());
             SplitIndexWriter indexgen = new SplitIndexWriter(configuration,
                     path.resolve(filename),
-                    indexbuilder, keys, prev, next);
+                    indexbuilder, keys);
             indexgen.generateIndexFile((Character) ch);
             if (!li.hasNext()) {
                 indexgen.createSearchIndexFiles();
@@ -182,40 +166,4 @@
             contentTree.addContent(Contents.SPACE);
         }
     }
-
-    /**
-     * Get link to the previous unicode character.
-     *
-     * @return a content tree for the link
-     */
-    @Override
-    public Content getNavLinkPrevious() {
-        Content prevletterLabel = contents.prevLetter;
-        if (prev == -1) {
-            return HtmlTree.LI(prevletterLabel);
-        }
-        else {
-            Content prevLink = links.createLink(DocPaths.indexN(prev),
-                    prevletterLabel);
-            return HtmlTree.LI(prevLink);
-        }
-    }
-
-    /**
-     * Get link to the next unicode character.
-     *
-     * @return a content tree for the link
-     */
-    @Override
-    public Content getNavLinkNext() {
-        Content nextletterLabel = contents.nextLetter;
-        if (next == -1) {
-            return HtmlTree.LI(nextletterLabel);
-        }
-        else {
-            Content nextLink = links.createLink(DocPaths.indexN(next),
-                    nextletterLabel);
-            return HtmlTree.LI(nextLink);
-        }
-    }
 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -112,17 +112,18 @@
             SearchIndexItem si = new SearchIndexItem();
             si.setLabel(tagText);
             si.setDescription(desc);
+            DocPaths docPaths = configuration.docPaths;
             new SimpleElementVisitor9<Void, Void>() {
                 @Override
                 public Void visitModule(ModuleElement e, Void p) {
-                    si.setUrl(DocPaths.moduleSummary(e).getPath() + "#" + anchorName);
+                    si.setUrl(docPaths.moduleSummary(e).getPath() + "#" + anchorName);
                     si.setHolder(utils.getFullyQualifiedName(element));
                     return null;
                 }
 
                 @Override
                 public Void visitPackage(PackageElement e, Void p) {
-                    si.setUrl(DocPath.forPackage(e).getPath()
+                    si.setUrl(docPaths.forPackage(e).getPath()
                             + "/" + DocPaths.PACKAGE_SUMMARY.getPath() + "#" + anchorName);
                     si.setHolder(utils.getSimpleName(element));
                     return null;
@@ -130,7 +131,7 @@
 
                 @Override
                 public Void visitType(TypeElement e, Void p) {
-                    si.setUrl(DocPath.forClass(utils, e).getPath() + "#" + anchorName);
+                    si.setUrl(docPaths.forClass(e).getPath() + "#" + anchorName);
                     si.setHolder(utils.getFullyQualifiedName(e));
                     return null;
                 }
@@ -138,7 +139,7 @@
                 @Override
                 public Void visitVariable(VariableElement e, Void p) {
                     TypeElement te = utils.getEnclosingTypeElement(e);
-                    si.setUrl(DocPath.forClass(utils, te).getPath() + "#" + anchorName);
+                    si.setUrl(docPaths.forClass(te).getPath() + "#" + anchorName);
                     si.setHolder(utils.getFullyQualifiedName(e) + "." + utils.getSimpleName(e));
                     return null;
                 }
@@ -146,7 +147,7 @@
                 @Override
                 protected Void defaultAction(Element e, Void p) {
                     TypeElement te = utils.getEnclosingTypeElement(e);
-                    si.setUrl(DocPath.forClass(utils, te).getPath() + "#" + anchorName);
+                    si.setUrl(docPaths.forClass(te).getPath() + "#" + anchorName);
                     si.setHolder(utils.getFullyQualifiedName(e));
                     return null;
                 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/WriterFactoryImpl.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/WriterFactoryImpl.java	Thu Feb 08 22:34:20 2018 -0800
@@ -76,36 +76,31 @@
      * {@inheritDoc}
      */
     @Override
-    public PackageSummaryWriter getPackageSummaryWriter(PackageElement packageElement,
-            PackageElement prevPkg, PackageElement nextPkg) {
-        return new PackageWriterImpl(configuration, packageElement, prevPkg, nextPkg);
+    public PackageSummaryWriter getPackageSummaryWriter(PackageElement packageElement) {
+        return new PackageWriterImpl(configuration, packageElement);
     }
 
     /**
      * {@inheritDoc}
      */
-    public ModuleSummaryWriter getModuleSummaryWriter(ModuleElement mdle,
-        ModuleElement prevModule, ModuleElement nextModule) {
-        return new ModuleWriterImpl(configuration, mdle,
-            prevModule, nextModule);
+    public ModuleSummaryWriter getModuleSummaryWriter(ModuleElement mdle) {
+        return new ModuleWriterImpl(configuration, mdle);
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public ClassWriter getClassWriter(TypeElement typeElement, TypeElement prevClass,
-            TypeElement nextClass, ClassTree classTree) {
-        return new ClassWriterImpl(configuration, typeElement, prevClass, nextClass, classTree);
+    public ClassWriter getClassWriter(TypeElement typeElement, ClassTree classTree) {
+        return new ClassWriterImpl(configuration, typeElement, classTree);
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    public AnnotationTypeWriter getAnnotationTypeWriter(TypeElement annotationType,
-            TypeMirror prevType, TypeMirror nextType) {
-        return new AnnotationTypeWriterImpl(configuration, annotationType, prevType, nextType);
+    public AnnotationTypeWriter getAnnotationTypeWriter(TypeElement annotationType) {
+        return new AnnotationTypeWriterImpl(configuration, annotationType);
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -16,16 +16,6 @@
 doclet.Interface_Hierarchy=Interface Hierarchy
 doclet.Enum_Hierarchy=Enum Hierarchy
 doclet.Annotation_Type_Hierarchy=Annotation Type Hierarchy
-doclet.Prev=Prev
-doclet.Next=Next
-doclet.Prev_Class=Prev Class
-doclet.Next_Class=Next Class
-doclet.Prev_Package=Prev Package
-doclet.Next_Package=Next Package
-doclet.Prev_Module=Prev Module
-doclet.Next_Module=Next Module
-doclet.Prev_Letter=Prev Letter
-doclet.Next_Letter=Next Letter
 doclet.Href_Class_Title=class in {0}
 doclet.Href_Interface_Title=interface in {0}
 doclet.Href_Annotation_Title=annotation in {0}
@@ -89,7 +79,9 @@
 doclet.Subinterfaces=All Known Subinterfaces:
 doclet.Implementing_Classes=All Known Implementing Classes:
 doclet.Functional_Interface=Functional Interface:
-doclet.Functional_Interface_Message=This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
+doclet.Functional_Interface_Message=\
+    This is a functional interface and can therefore be used as the assignment target for a lambda \
+    expression or method reference.
 doclet.also=also
 doclet.Frames=Frames
 doclet.No_Frames=No Frames
@@ -105,42 +97,102 @@
 doclet.Enclosing_Interface=Enclosing interface:
 doclet.Window_Source_title=Source code
 doclet.Window_Help_title=API Help
-doclet.Help_line_1=How This API Document Is Organized
-doclet.Help_line_2=This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
-doclet.Help_line_3=The {0} page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.
-doclet.Help_line_4=Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:
-doclet.Help_line_5=Class/Interface
-doclet.Help_line_6=Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:
-doclet.Help_line_7=Class inheritance diagram
-doclet.Help_line_8=Direct Subclasses
-doclet.Help_line_9=All Known Subinterfaces
-doclet.Help_line_10=All Known Implementing Classes
-doclet.Help_line_11=Class/interface declaration
-doclet.Help_line_12=Class/interface description
-doclet.Help_line_13=Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
-doclet.Help_line_14=Use
-doclet.Help_line_15=Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
-doclet.Help_line_16=Tree (Class Hierarchy)
-doclet.Help_line_17_with_tree_link=There is a {0} page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with {1}. The interfaces do not inherit from {1}.
-doclet.Help_line_18=When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
-doclet.Help_line_19=When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
-doclet.Help_line_20_with_deprecated_api_link=The {0} page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
-doclet.Help_line_21=Index
-doclet.Help_line_22=The {0} contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
-doclet.Help_line_23=Prev/Next
-doclet.Help_line_24=These links take you to the next or previous class, interface, package, or related page.
-doclet.Help_line_25=Frames/No Frames
-doclet.Help_line_26=These links show and hide the HTML frames.  All pages are available with or without frames.
-doclet.Help_line_27=The {0} link shows all classes and interfaces except non-static nested types.
-doclet.Help_line_28=Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
-doclet.Help_line_29=The {0} page lists the static final fields and their values.
-doclet.Help_line_30=This help file applies to API documentation generated using the standard doclet.
-doclet.Help_enum_line_1=Each enum has its own separate page with the following sections:
-doclet.Help_enum_line_2=Enum declaration
-doclet.Help_enum_line_3=Enum description
-doclet.Help_annotation_type_line_1=Each annotation type has its own separate page with the following sections:
-doclet.Help_annotation_type_line_2=Annotation Type declaration
-doclet.Help_annotation_type_line_3=Annotation Type description
+
+doclet.help.main_heading=\
+    How This API Document Is Organized
+doclet.help.intro=\
+    This API (Application Programming Interface) document has pages corresponding to the items in \
+    the navigation bar, described as follows.
+doclet.help.overview.body=\
+    The {0} page is the front page of this API document and provides a list of all packages with a \
+    summary for each.  This page can also contain an overall description of the set of packages.
+doclet.help.package.intro=\
+    Each package has a page that contains a list of its classes and interfaces, with a summary for \
+    each. This page can contain six categories:
+doclet.help.class_interface.head=\
+    Class/Interface
+doclet.help.class_interface.intro=\
+    Each class, interface, nested class and nested interface has its own separate page. Each of \
+    these pages has three sections consisting of a class/interface description, summary tables, \
+    and detailed member descriptions:
+doclet.help.class_interface.inheritance_diagram=\
+    Class inheritance diagram
+doclet.help.class_interface.subclasses=\
+    Direct Subclasses
+doclet.help.class_interface.subinterfaces=\
+    All Known Subinterfaces
+doclet.help.class_interface.implementations=\
+    All Known Implementing Classes
+doclet.help.class_interface.declaration=\
+    Class/interface declaration
+doclet.help.class_interface.description=\
+    Class/interface description
+doclet.help.class_interface.summary=\
+    Each summary entry contains the first sentence from the detailed description for that item. \
+    The summary entries are alphabetical, while the detailed descriptions are in the order they \
+    appear in the source code. This preserves the logical groupings established by the programmer.
+doclet.help.use.head=\
+    Use
+doclet.help.use.body=\
+    Each documented package, class and interface has its own Use page.  This page describes what \
+    packages, classes, methods, constructors and fields use any part of the given class or \
+    package. Given a class or interface A, its Use page includes subclasses of A, fields declared \
+    as A, methods that return A, and methods and constructors with parameters of type A.  \
+    You can access this page by first going to the package, class or interface, then clicking on \
+    the "Use" link in the navigation bar.
+doclet.help.tree.head=\
+    Tree (Class Hierarchy)
+doclet.help.tree.intro=\
+    There is a {0} page for all packages, plus a hierarchy for each package. Each hierarchy page \
+    contains a list of classes and a list of interfaces. The classes are organized by inheritance \
+    structure starting with {1}. The interfaces do not inherit from {1}.
+doclet.help.tree.overview=\
+    When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
+doclet.help.tree.package=\
+    When viewing a particular package, class or interface page, clicking "Tree" displays the \
+    hierarchy for only that package.
+doclet.help.deprecated.body=\
+    The {0} page lists all of the API that have been deprecated. A deprecated API is not \
+    recommended for use, generally due to improvements, and a replacement API is usually given. \
+    Deprecated APIs may be removed in future implementations.
+doclet.help.index.head=\
+    Index
+doclet.help.index.body=\
+    The {0} contains an alphabetic list of all classes, interfaces, constructors, methods, \
+    and fields.
+doclet.help.prev_next.head=\
+    Prev/Next
+doclet.help.prev_next.body=\
+    These links take you to the next or previous class, interface, package, or related page.
+doclet.help.frames.head=\
+    Frames/No Frames
+doclet.help.frames.body=\
+    These links show and hide the HTML frames.  All pages are available with or without frames.
+doclet.help.all_classes.body=\
+    The {0} link shows all classes and interfaces except non-static nested types.
+doclet.help.serial_form.body=\
+    Each serializable or externalizable class has a description of its serialization fields and \
+    methods. This information is of interest to re-implementors, not to developers using the API. \
+    While there is no link in the navigation bar, you can get to this information by going to any \
+    serialized class and clicking "Serialized Form" in the "See also" section of the class \
+    description.
+doclet.help.constants.body=\
+    The {0} page lists the static final fields and their values.
+doclet.help.footnote=\
+    This help file applies to API documentation generated using the standard doclet.
+doclet.help.enum.intro=\
+    Each enum has its own separate page with the following sections:
+doclet.help.enum.declaration=\
+    Enum declaration
+doclet.help.enum.definition=\
+    Enum description
+doclet.help.annotation_type.intro=\
+    Each annotation type has its own separate page with the following sections:
+doclet.help.annotation_type.declaration=\
+    Annotation Type declaration
+doclet.help.annotation_type.description=\
+    Annotation Type description
+
 doclet.ClassUse_Packages.that.use.0=Packages that use {0}
 doclet.ClassUse_Uses.of.0.in.1=Uses of {0} in {1}
 doclet.ClassUse_Classes.in.0.used.by.1=Classes in {0} used by {1}
@@ -152,7 +204,8 @@
 doclet.ClassUse_FieldAnnotations=Fields in {1} with annotations of type {0}
 doclet.ClassUse_MethodAnnotations=Methods in {1} with annotations of type {0}
 doclet.ClassUse_MethodParameterAnnotations=Method parameters in {1} with annotations of type {0}
-doclet.ClassUse_MethodReturnTypeParameter=Methods in {1} that return types with arguments of type {0}
+doclet.ClassUse_MethodReturnTypeParameter=\
+    Methods in {1} that return types with arguments of type {0}
 doclet.ClassUse_Subclass=Subclasses of {0} in {1}
 doclet.ClassUse_Subinterface=Subinterfaces of {0} in {1}
 doclet.ClassUse_ImplementingClass=Classes in {1} that implement {0}
@@ -162,9 +215,11 @@
 doclet.ClassUse_MethodArgsTypeParameters=Method parameters in {1} with type arguments of type {0}
 doclet.ClassUse_MethodThrows=Methods in {1} that throw {0}
 doclet.ClassUse_ConstructorAnnotations=Constructors in {1} with annotations of type {0}
-doclet.ClassUse_ConstructorParameterAnnotations=Constructor parameters in {1} with annotations of type {0}
+doclet.ClassUse_ConstructorParameterAnnotations=\
+    Constructor parameters in {1} with annotations of type {0}
 doclet.ClassUse_ConstructorArgs=Constructors in {1} with parameters of type {0}
-doclet.ClassUse_ConstructorArgsTypeParameters=Constructor parameters in {1} with type arguments of type {0}
+doclet.ClassUse_ConstructorArgsTypeParameters=\
+    Constructor parameters in {1} with type arguments of type {0}
 doclet.ClassUse_ConstructorThrows=Constructors in {1} that throw {0}
 doclet.ClassUse_No.usage.of.0=No usage of {0}
 doclet.Window_ClassUse_Header=Uses of {0} {1}
@@ -280,6 +335,10 @@
 doclet.usage.nodeprecatedlist.description=\
     Do not generate deprecated list
 
+doclet.usage.no-module-directories.description=\
+    Do not group files for module documentation into \n\
+    module-specific directories
+
 doclet.usage.notree.description=\
     Do not generate class hierarchy
 
@@ -315,7 +374,7 @@
     Charset for cross-platform viewing of generated documentation
 
 doclet.usage.javafx.description=\
-    Enable javafx functionality
+    Enable JavaFX functionality
 
 doclet.usage.helpfile.parameters=\
     <file>
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_ja.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_ja.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -301,3 +301,6 @@
 
 doclet.usage.xdoclint-package.parameters=([-]<packages>)
 doclet.usage.xdoclint-package.description=\u7279\u5B9A\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30C1\u30A7\u30C3\u30AF\u3092\u6709\u52B9\u307E\u305F\u306F\u7121\u52B9\u306B\u3057\u307E\u3059\u3002<packages>\u306F\n\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3089\u308C\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u6307\u5B9A\u5B50\u306E\u30EA\u30B9\u30C8\u3067\u3059\u3002\u30D1\u30C3\u30B1\u30FC\u30B8\n\u6307\u5B9A\u5B50\u306F\u3001\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u4FEE\u98FE\u3055\u308C\u305F\u540D\u524D\u3001\u307E\u305F\u306F\u30D1\u30C3\u30B1\u30FC\u30B8\u540D\n\u306E\u63A5\u982D\u8F9E\u306E\u5F8C\u306B.*\u3092\u6307\u5B9A(\u6307\u5B9A\u3057\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u3059\u3079\u3066\u306E\u30B5\u30D6\u30D1\u30C3\u30B1\u30FC\u30B8\n\u306B\u62E1\u5F35)\u3057\u305F\u3082\u306E\u3067\u3059\u3002\u30D1\u30C3\u30B1\u30FC\u30B8\u6307\u5B9A\u5B50\u306E\u524D\u306B-\u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\n\u6307\u5B9A\u3057\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u95A2\u3059\u308B\u30C1\u30A7\u30C3\u30AF\u3092\u7121\u52B9\u306B\u3067\u304D\u307E\u3059\u3002
+
+# L10N: do not localize the option names -html4 and -html5
+doclet.HTML_version_not_specified=\u4F7F\u7528\u3059\u308BHTML\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\n\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u73FE\u5728HTML 4.01\u3067\u3059\u304C\u3001\u3053\u308C\u306F\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067HTML5\u306B\n\u5909\u66F4\u3055\u308C\u307E\u3059\u3002\u3053\u306E\u8B66\u544A\u3092\u8868\u793A\u3057\u306A\u3044\u3088\u3046\u306B\u3059\u308B\u306B\u306F\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30B3\u30E1\u30F3\u30C8\n\u3067\u4F7F\u7528\u3055\u308C\u3066\u3044\u3066\u3001\u3053\u306E\u30C9\u30C3\u30AF\u30EC\u30C3\u30C8\u3067-html4\u307E\u305F\u306F-html5\uFF11\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\n\u751F\u6210\u3055\u308C\u308BHTML\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_zh_CN.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_zh_CN.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -301,3 +301,6 @@
 
 doclet.usage.xdoclint-package.parameters=([-]<packages>)
 doclet.usage.xdoclint-package.description=\u5728\u7279\u5B9A\u7684\u7A0B\u5E8F\u5305\u4E2D\u542F\u7528\u6216\u7981\u7528\u68C0\u67E5\u3002<\u7A0B\u5E8F\u5305>\n\u662F\u9017\u53F7\u5206\u9694\u7684\u7A0B\u5E8F\u5305\u8BF4\u660E\u7B26\u5217\u8868\u3002\u7A0B\u5E8F\u5305\n\u8BF4\u660E\u7B26\u662F\u7A0B\u5E8F\u5305\u7684\u9650\u5B9A\u540D\u79F0\u6216\u7A0B\u5E8F\u5305\u540D\u79F0\n\u524D\u7F00\u540E\u8DDF .*, \u5B83\u6269\u5C55\u5230\u7ED9\u5B9A\u7A0B\u5E8F\u5305\u7684\u6240\u6709\n\u5B50\u7A0B\u5E8F\u5305\u3002\u5728\u7A0B\u5E8F\u5305\u8BF4\u660E\u7B26\u524D\u9762\u52A0\u4E0A - \u53EF\u4EE5\n\u4E3A\u6307\u5B9A\u7A0B\u5E8F\u5305\u7981\u7528\u68C0\u67E5\u3002
+
+# L10N: do not localize the option names -html4 and -html5
+doclet.HTML_version_not_specified=\u672A\u6307\u5B9A\u8981\u4F7F\u7528\u7684 HTML \u7248\u672C\u3002\n\u9ED8\u8BA4\u503C\u5F53\u524D\u4E3A HTML 4.01\uFF0C\u4F46\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\n\u5C06\u66F4\u6539\u4E3A HTML5\u3002\u8981\u9690\u85CF\u6B64\u8B66\u544A\uFF0C\u8BF7\u4F7F\u7528 -html4 \n\u6216 -html5 \u9009\u9879\uFF0C\u6307\u5B9A\u8981\u7531\u6B64 doclet \u751F\u6210\u7684\u3001\n\u5728\u6587\u6863\u6CE8\u91CA\u4E2D\u4F7F\u7528\u7684 HTML \u7248\u672C\u3002
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -65,8 +65,7 @@
 /**
  * Configure the output based on the options. Doclets should sub-class
  * BaseConfiguration, to configure and add their own options. This class contains
- * all user options which are supported by the 1.1 doclet and the standard
- * doclet.
+ * all user options which are supported by the standard doclet.
  * <p>
  * <p><b>This is NOT part of any supported API.
  * If you write code that depends on this, you do so at your own risk.
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WriterFactory.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/WriterFactory.java	Thu Feb 08 22:34:20 2018 -0800
@@ -59,50 +59,38 @@
      * Return the writer for the package summary.
      *
      * @param packageElement the package being documented.
-     * @param prevPkg the previous package that was documented.
-     * @param nextPkg the next package being documented.
      * @return the writer for the package summary.  Return null if this
      * writer is not supported by the doclet.
      */
-    public abstract PackageSummaryWriter getPackageSummaryWriter(PackageElement
-        packageElement, PackageElement prevPkg, PackageElement nextPkg);
+    public abstract PackageSummaryWriter getPackageSummaryWriter(PackageElement packageElement);
 
     /**
      * Return the writer for the module summary.
      *
      * @param mdle the module being documented.
-     * @param prevModule the previous module that was documented.
-     * @param nextModule the next module being documented.
      * @return the writer for the module summary.  Return null if this
      * writer is not supported by the doclet.
      */
-    public abstract ModuleSummaryWriter getModuleSummaryWriter(
-        ModuleElement mdle, ModuleElement prevModule, ModuleElement nextModule);
+    public abstract ModuleSummaryWriter getModuleSummaryWriter(ModuleElement mdle);
 
     /**
      * Return the writer for a class.
      *
      * @param typeElement the class being documented.
-     * @param prevClass the previous class that was documented.
-     * @param nextClass the next class being documented.
      * @param classTree the class tree.
      * @return the writer for the class.  Return null if this
      * writer is not supported by the doclet.
      */
-    public abstract ClassWriter getClassWriter(TypeElement typeElement,
-        TypeElement prevClass, TypeElement nextClass, ClassTree classTree);
+    public abstract ClassWriter getClassWriter(TypeElement typeElement, ClassTree classTree);
 
     /**
      * Return the writer for an annotation type.
      *
      * @param annotationType the type being documented.
-     * @param prevType the previous type that was documented.
-     * @param nextType the next type being documented.
      * @return the writer for the annotation type.  Return null if this
      * writer is not supported by the doclet.
      */
-    public abstract AnnotationTypeWriter getAnnotationTypeWriter(
-        TypeElement annotationType, TypeMirror prevType, TypeMirror nextType);
+    public abstract AnnotationTypeWriter getAnnotationTypeWriter(TypeElement annotationType);
 
     /**
      * Return the method writer for a given class.
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/BuilderFactory.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/BuilderFactory.java	Thu Feb 08 22:34:20 2018 -0800
@@ -88,59 +88,47 @@
      * Return the builder that builds the package summary.
      *
      * @param pkg the package being documented.
-     * @param prevPkg the previous package being documented.
-     * @param nextPkg the next package being documented.
      * @return the builder that builds the package summary.
      */
-    public AbstractBuilder getPackageSummaryBuilder(PackageElement pkg, PackageElement prevPkg,
-            PackageElement nextPkg) {
+    public AbstractBuilder getPackageSummaryBuilder(PackageElement pkg) {
         return PackageSummaryBuilder.getInstance(context, pkg,
-            writerFactory.getPackageSummaryWriter(pkg, prevPkg, nextPkg));
+            writerFactory.getPackageSummaryWriter(pkg));
     }
 
     /**
      * Return the builder that builds the module summary.
      *
      * @param mdle the module being documented.
-     * @param prevModule the previous module being documented.
-     * @param nextModule the next module being documented.
      * @return the builder that builds the module summary.
      */
-    public AbstractBuilder getModuleSummaryBuilder(ModuleElement mdle, ModuleElement prevModule,
-            ModuleElement nextModule) {
+    public AbstractBuilder getModuleSummaryBuilder(ModuleElement mdle) {
         return ModuleSummaryBuilder.getInstance(context, mdle,
-            writerFactory.getModuleSummaryWriter(mdle, prevModule, nextModule));
+            writerFactory.getModuleSummaryWriter(mdle));
     }
 
     /**
      * Return the builder for the class.
      *
      * @param typeElement the class being documented.
-     * @param prevClass the previous class that was documented.
-     * @param nextClass the next class being documented.
      * @param classTree the class tree.
      * @return the writer for the class.  Return null if this
      * writer is not supported by the doclet.
      */
-    public AbstractBuilder getClassBuilder(TypeElement typeElement,
-            TypeElement prevClass, TypeElement nextClass, ClassTree classTree) {
+    public AbstractBuilder getClassBuilder(TypeElement typeElement, ClassTree classTree) {
         return ClassBuilder.getInstance(context, typeElement,
-            writerFactory.getClassWriter(typeElement, prevClass, nextClass, classTree));
+            writerFactory.getClassWriter(typeElement, classTree));
     }
 
     /**
      * Return the builder for the annotation type.
      *
      * @param annotationType the annotation type being documented.
-     * @param prevType the previous type that was documented.
-     * @param nextType the next type being documented.
      * @return the writer for the annotation type.  Return null if this
      * writer is not supported by the doclet.
      */
-    public AbstractBuilder getAnnotationTypeBuilder(
-        TypeElement annotationType, TypeMirror prevType, TypeMirror nextType) {
+    public AbstractBuilder getAnnotationTypeBuilder(TypeElement annotationType) {
         return AnnotationTypeBuilder.getInstance(context, annotationType,
-            writerFactory.getAnnotationTypeWriter(annotationType, prevType, nextType));
+            writerFactory.getAnnotationTypeWriter(annotationType));
     }
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassUseMapper.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassUseMapper.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@
 import javax.lang.model.util.Types;
 
 import jdk.javadoc.doclet.DocletEnvironment;
-import jdk.javadoc.internal.doclets.formats.html.HtmlConfiguration;
+import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
 import jdk.javadoc.internal.doclets.toolkit.util.VisibleMemberMap.Kind;
 
 /**
@@ -192,7 +192,7 @@
     private final Types typeUtils;
     private final Utils utils;
 
-    public ClassUseMapper(HtmlConfiguration configuration, ClassTree classtree) {
+    public ClassUseMapper(BaseConfiguration configuration, ClassTree classtree) {
         docEnv = configuration.docEnv;
         elementUtils = docEnv.getElementUtils();
         typeUtils = docEnv.getTypeUtils();
@@ -414,11 +414,11 @@
         }
     }
 
-    private <T> List<T> refList(Map<TypeElement, List<T>> map, Element element) {
+    private <T> List<T> refList(Map<TypeElement, List<T>> map, TypeElement element) {
         List<T> list = map.get(element);
         if (list == null) {
             list = new ArrayList<>();
-            map.put((TypeElement) element, list);
+            map.put(element, list);
         }
         return list;
     }
@@ -570,7 +570,7 @@
             @Override
             public Void visitPackage(PackageElement e, Void p) {
                 for (AnnotationMirror a : e.getAnnotationMirrors()) {
-                    refList(map, a.getAnnotationType().asElement()).add(holder);
+                    refList(map, (TypeElement) a.getAnnotationType().asElement()).add(holder);
                 }
                 return null;
             }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPath.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPath.java	Thu Feb 08 22:34:20 2018 -0800
@@ -61,94 +61,6 @@
         return (p == null) || p.isEmpty() ? empty : new DocPath(p);
     }
 
-    /**
-     * Returns the path for a class.
-     * For example, if the class is java.lang.Object,
-     * the path is java/lang/Object.html.
-     * @param utils utility class for handling type elements
-     * @param typeElement the type element
-     * @return the path
-     */
-    public static DocPath forClass(Utils utils, TypeElement typeElement) {
-        return (typeElement == null)
-                ? empty
-                : forPackage(utils.containingPackage(typeElement)).resolve(forName(utils, typeElement));
-    }
-
-    /**
-     * Returns the path for the simple name of a class.
-     * For example, if the class is java.lang.Object,
-     * the path is Object.html.
-     * @param utils utility class for handling type elements
-     * @param typeElement the type element
-     * @return the path
-     */
-    public static DocPath forName(Utils utils, TypeElement typeElement) {
-        return (typeElement == null) ? empty : new DocPath(utils.getSimpleName(typeElement) + ".html");
-    }
-
-    /**
-     * Returns the path for the name of a module.
-     * For example, if the module is java.base,
-     * the path is java.base.
-     * @param mdle the module element
-     * @return the path
-     */
-    public static DocPath forModule(ModuleElement mdle) {
-        return mdle == null || mdle.isUnnamed()
-                ? empty
-                : DocPath.create(mdle.getQualifiedName().toString());
-    }
-
-    /**
-     * Returns the path for the package of a class.
-     * For example, if the class is java.lang.Object,
-     * the path is java/lang.
-     * @param utils utility class for handling type elements
-     * @param typeElement the type element
-     * @return the path
-     */
-    public static DocPath forPackage(Utils utils, TypeElement typeElement) {
-        return (typeElement == null) ? empty : forPackage(utils.containingPackage(typeElement));
-    }
-
-    /**
-     * Returns the path for a package.
-     * For example, if the package is java.lang,
-     * the path is java/lang.
-     * @param pkgElement the package element
-     * @return the path
-     */
-    public static DocPath forPackage(PackageElement pkgElement) {
-        return pkgElement == null || pkgElement.isUnnamed()
-                ? empty
-                : DocPath.create(pkgElement.getQualifiedName().toString().replace('.', '/'));
-    }
-
-    /**
-     * Returns the inverse path for a package.
-     * For example, if the package is java.lang,
-     * the inverse path is ../...
-     * @param pkgElement the package element
-     * @return the path
-     */
-    public static DocPath forRoot(PackageElement pkgElement) {
-        String name = (pkgElement == null || pkgElement.isUnnamed())
-                ? ""
-                : pkgElement.getQualifiedName().toString();
-        return new DocPath(name.replace('.', '/').replaceAll("[^/]+", ".."));
-    }
-
-    /**
-     * Returns the relative path from one package to another.
-     * @param from the initial package
-     * @param to the target package
-     * @return the path
-     */
-    public static DocPath relativePath(PackageElement from, PackageElement to) {
-        return forRoot(from).resolve(forPackage(to));
-    }
-
     protected DocPath(String p) {
         path = (p.endsWith("/") ? p.substring(0, p.length() - 1) : p);
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPaths.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/DocPaths.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,8 @@
 package jdk.javadoc.internal.doclets.toolkit.util;
 
 import javax.lang.model.element.ModuleElement;
+import javax.lang.model.element.PackageElement;
+import javax.lang.model.element.TypeElement;
 
 /**
  * Standard DocPath objects.
@@ -37,6 +39,16 @@
  *
  */
 public class DocPaths {
+    private final boolean useModuleDirectories;
+    private final String moduleSeparator;
+    private final Utils utils;
+
+    public DocPaths(Utils utils, boolean useModuleDirectories) {
+        this.utils = utils;
+        this.useModuleDirectories = useModuleDirectories;
+        moduleSeparator = useModuleDirectories ? "/module-" : "-";
+    }
+
     /** The name of the file for all classes, without using frames, when --no-frames is specified. */
     public static final DocPath ALLCLASSES = DocPath.create("allclasses.html");
 
@@ -80,7 +92,11 @@
     /** The name of the directory for the split index files. */
     public static final DocPath INDEX_FILES = DocPath.create("index-files");
 
-    /** Generate the name of one of the files in the split index. */
+    /**
+     * Generate the name of one of the files in the split index.
+     * @param n the position in the index
+     * @return the path
+     */
     public static DocPath indexN(int n) {
         return DocPath.create("index-" + n + ".html");
     }
@@ -173,29 +189,153 @@
     /** The name of the file for the package usage info. */
     public static final DocPath PACKAGE_USE = DocPath.create("package-use.html");
 
-    /** The name of the output directory for module documentation files. */
-    public static DocPath moduleDocFiles(ModuleElement mdle) {
-        return DocPath.create(mdle.getQualifiedName() + "-doc-files");
+    /**
+     * Returns the path for a type element.
+     * For example, if the type element is {@code java.lang.Object},
+     * the path is {@code java/lang/Object.html}.
+     *
+     * @param typeElement the type element
+     * @return the path
+     */
+    public DocPath forClass(TypeElement typeElement) {
+        return (typeElement == null)
+                ? DocPath.empty
+                : forPackage(utils.containingPackage(typeElement)).resolve(forName(typeElement));
     }
 
-    /** The name of the file for the module frame. */
-    public static DocPath moduleFrame(ModuleElement mdle) {
-        return DocPath.create(mdle.getQualifiedName() + "-frame.html");
+    /**
+     * Returns the path for the simple name of a type element.
+     * For example, if the type element is {@code java.lang.Object},
+     * the path is {@code Object.html}.
+     *
+     * @param typeElement the type element
+     * @return the path
+     */
+    public DocPath forName(TypeElement typeElement) {
+        return (typeElement == null)
+                ? DocPath.empty
+                : new DocPath(utils.getSimpleName(typeElement) + ".html");
     }
 
-    /** The name of the file for the module summary. */
-    public static DocPath moduleSummary(ModuleElement mdle) {
-        return DocPaths.moduleSummary(mdle.getQualifiedName().toString());
+    public static DocPath forModule(ModuleElement mdle) {
+        return mdle == null || mdle.isUnnamed()
+                ? DocPath.empty
+                : DocPath.create(mdle.getQualifiedName().toString());
     }
 
-    /** The name of the file for the module summary. */
-    public static DocPath moduleSummary(String mdleName) {
-        return DocPath.create(mdleName + "-summary.html");
+    /**
+     * Returns the path for the package of a type element.
+     * For example, if the type element is {@code java.lang.Object},
+     * the path is {@code java/lang}.
+     *
+     * @param typeElement the type element
+     * @return the path
+     */
+    public DocPath forPackage(TypeElement typeElement) {
+        return (typeElement == null)
+                ? DocPath.empty
+                : forPackage(utils.containingPackage(typeElement));
     }
 
-    /** The name of the file for the module frame. */
-    public static DocPath moduleTypeFrame(ModuleElement mdle) {
-        return DocPath.create(mdle.getQualifiedName() + "-type-frame.html");
+    /**
+     * Returns the path for a package.
+     * For example, if the package is {@code java.lang},
+     * the path is {@code java/lang}.
+     *
+     * @param pkgElement the package element
+     * @return the path
+     */
+    public DocPath forPackage(PackageElement pkgElement) {
+        if (pkgElement == null || pkgElement.isUnnamed()) {
+            return DocPath.empty;
+        }
+
+        DocPath pkgPath = DocPath.create(pkgElement.getQualifiedName().toString().replace('.', '/'));
+        if (useModuleDirectories) {
+            ModuleElement mdle = (ModuleElement) pkgElement.getEnclosingElement();
+            return forModule(mdle).resolve(pkgPath);
+        } else {
+            return pkgPath;
+        }
+    }
+
+    /**
+     * Returns the inverse path for a package.
+     * For example, if the package is {@code java.lang},
+     * the inverse path is {@code ../..}.
+     *
+     * @param pkgElement the package element
+     * @return the path
+     */
+    public static DocPath forRoot(PackageElement pkgElement) {
+        String name = (pkgElement == null || pkgElement.isUnnamed())
+                ? ""
+                : pkgElement.getQualifiedName().toString();
+        return new DocPath(name.replace('.', '/').replaceAll("[^/]+", ".."));
+    }
+
+    /**
+     * Returns a relative path from one package to another.
+     *
+     * @param from the origin of the relative path
+     * @param to the destination of the relative path
+     * @return the path
+     */
+    public DocPath relativePath(PackageElement from, PackageElement to) {
+        return forRoot(from).resolve(forPackage(to));
+    }
+
+    /**
+     * The path for the output directory for module documentation files.
+     * @param mdle the module
+     * @return the path
+     */
+    public DocPath moduleDocFiles(ModuleElement mdle) {
+        return createModulePath(mdle, "doc-files");
+    }
+
+    /**
+     * The path for the file for a module's frame page.
+     * @param mdle the module
+     * @return the path
+     */
+    public DocPath moduleFrame(ModuleElement mdle) {
+        return createModulePath(mdle, "frame.html");
+    }
+
+    /**
+     * The path for the file for a module's summary page.
+     * @param mdle the module
+     * @return the path
+     */
+    public DocPath moduleSummary(ModuleElement mdle) {
+        return createModulePath(mdle, "summary.html");
+    }
+
+    /**
+     * The path for the file for a module's summary page.
+     * @param mdleName the module
+     * @return the path
+     */
+    public DocPath moduleSummary(String mdleName) {
+        return createModulePath(mdleName, "summary.html");
+    }
+
+    /**
+     * The path for the file for a module's type frame page.
+     * @param mdle the module
+     * @return the path
+     */
+    public DocPath moduleTypeFrame(ModuleElement mdle) {
+        return createModulePath(mdle, "type-frame.html");
+    }
+
+    private DocPath createModulePath(ModuleElement mdle, String path) {
+        return DocPath.create(mdle.getQualifiedName() + moduleSeparator + path);
+    }
+
+    private DocPath createModulePath(String moduleName, String path) {
+        return DocPath.create(moduleName + moduleSeparator + path);
     }
 
     /** The name of the file for the module overview frame. */
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -82,7 +82,6 @@
 import com.sun.source.util.SimpleDocTreeVisitor;
 import com.sun.source.util.TreePath;
 import com.sun.tools.javac.model.JavacTypes;
-import jdk.javadoc.internal.doclets.formats.html.HtmlConfiguration;
 import jdk.javadoc.internal.doclets.toolkit.BaseConfiguration;
 import jdk.javadoc.internal.doclets.toolkit.CommentUtils.DocCommentDuo;
 import jdk.javadoc.internal.doclets.toolkit.Messages;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkFactory.java	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/links/LinkFactory.java	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.lang.model.element.AnnotationMirror;
 import javax.lang.model.element.Element;
 import javax.lang.model.element.TypeElement;
 import javax.lang.model.element.TypeParameterElement;
@@ -39,7 +38,6 @@
 import javax.lang.model.type.WildcardType;
 import javax.lang.model.util.SimpleTypeVisitor9;
 
-import jdk.javadoc.internal.doclets.formats.html.LinkInfoImpl;
 import jdk.javadoc.internal.doclets.toolkit.Content;
 import jdk.javadoc.internal.doclets.toolkit.util.Utils;
 
@@ -54,6 +52,11 @@
  * @author Jamie Ho
  */
 public abstract class LinkFactory {
+    protected final Utils utils;
+
+    protected LinkFactory(Utils utils) {
+        this.utils = utils;
+    }
 
     /**
      * Return an empty instance of a content object.
@@ -69,7 +72,6 @@
      * @return the output of the link.
      */
     public Content getLink(LinkInfo linkInfo) {
-        Utils utils = ((LinkInfoImpl) linkInfo).configuration.utils;
         if (linkInfo.type != null) {
             SimpleTypeVisitor9<Content, LinkInfo> linkVisitor =
                     new SimpleTypeVisitor9<Content, LinkInfo>() {
@@ -207,26 +209,27 @@
     }
 
     /**
-     * Return the link to the given class.
+     * Returns a link to the given class.
      *
-     * @param linkInfo the information about the link to construct.
+     * @param linkInfo the information about the link to construct
      *
      * @return the link for the given class.
      */
     protected abstract Content getClassLink(LinkInfo linkInfo);
 
     /**
-     * Return the link to the given type parameter.
+     * Returns a link to the given type parameter.
      *
-     * @param linkInfo     the information about the link to construct.
-     * @param typeParam the type parameter to link to.
+     * @param linkInfo     the information about the link to construct
+     * @param typeParam the type parameter to link to
+     * @return the link
      */
     protected abstract Content getTypeParameterLink(LinkInfo linkInfo, TypeMirror typeParam);
 
     /**
-     * Return the links to the type parameters.
+     * Returns links to the type parameters.
      *
-     * @param linkInfo     the information about the link to construct.
+     * @param linkInfo     the information about the link to construct
      * @return the links to the type parameters.
      */
     public Content getTypeParameterLinks(LinkInfo linkInfo) {
@@ -234,15 +237,14 @@
     }
 
     /**
-     * Return the links to the type parameters.
+     * Returns links to the type parameters.
      *
-     * @param linkInfo     the information about the link to construct.
-     * @param isClassLabel true if this is a class label.  False if it is
-     *                     the type parameters portion of the link.
-     * @return the links to the type parameters.
+     * @param linkInfo     the information about the link to construct
+     * @param isClassLabel true if this is a class label, or false if it is
+     *                     the type parameters portion of the link
+     * @return the links to the type parameters
      */
     public Content getTypeParameterLinks(LinkInfo linkInfo, boolean isClassLabel) {
-        Utils utils = ((LinkInfoImpl)linkInfo).utils;
         Content links = newContent();
         List<TypeMirror> vars = new ArrayList<>();
         TypeMirror ctype = linkInfo.type != null
--- a/src/jdk.jdwp.agent/share/native/libdt_socket/socketTransport.c	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jdwp.agent/share/native/libdt_socket/socketTransport.c	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -228,6 +228,7 @@
     // it looks up "localhost" and returns 127.0.0.1 if lookup
     // fails.
     struct addrinfo hints, *res = NULL;
+    uint32_t addr;
     int err;
 
     // Use portable way to initialize the structure
@@ -241,7 +242,9 @@
 
     // getaddrinfo might return more than one address
     // but we are using first one only
-    return ((struct sockaddr_in *)(res->ai_addr))->sin_addr.s_addr;
+    addr = ((struct sockaddr_in *)(res->ai_addr))->sin_addr.s_addr;
+    freeaddrinfo(res);
+    return addr;
 }
 
 static int
@@ -300,7 +303,7 @@
         char *buf;
         char *hostname;
         uint32_t addr;
-
+        int ai;
         buf = (*callback->alloc)((int)strlen(address) + 1);
         if (buf == NULL) {
             RETURN_ERROR(JDWPTRANSPORT_ERROR_OUT_OF_MEMORY, "out of memory");
@@ -315,16 +318,25 @@
          */
         addr = dbgsysInetAddr(hostname);
         if (addr == 0xffffffff) {
-            struct hostent *hp = dbgsysGetHostByName(hostname);
-            if (hp == NULL) {
+            struct addrinfo hints;
+            struct addrinfo *results = NULL;
+            memset (&hints, 0, sizeof(hints));
+            hints.ai_family = AF_INET;
+            hints.ai_socktype = SOCK_STREAM;
+            hints.ai_protocol = IPPROTO_TCP;
+
+            ai = dbgsysGetAddrInfo(hostname, NULL, &hints, &results);
+
+            if (ai != 0) {
                 /* don't use RETURN_IO_ERROR as unknown host is normal */
-                setLastError(0, "gethostbyname: unknown host");
+                setLastError(0, "getaddrinfo: unknown host");
                 (*callback->free)(buf);
                 return JDWPTRANSPORT_ERROR_IO_ERROR;
             }
 
             /* lookup was successful */
-            memcpy(&(sa->sin_addr), hp->h_addr_list[0], hp->h_length);
+            sa->sin_addr =  ((struct sockaddr_in *)results->ai_addr)->sin_addr;
+            freeaddrinfo(results);
         } else {
             sa->sin_addr.s_addr = addr;
         }
--- a/src/jdk.jdwp.agent/share/native/libdt_socket/sysSocket.h	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jdwp.agent/share/native/libdt_socket/sysSocket.h	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@
 int dbgsysListen(int fd, int backlog);
 int dbgsysRecv(int fd, char *buf, size_t nBytes, int flags);
 int dbgsysSend(int fd, char *buf, size_t nBytes, int flags);
-struct hostent *dbgsysGetHostByName(char *hostname);
+int dbgsysGetAddrInfo(char *hostname, char *service, struct addrinfo *hints, struct addrinfo **results);
 int dbgsysSocket(int domain, int type, int protocol);
 int dbgsysBind(int fd, struct sockaddr *name, socklen_t namelen);
 int dbgsysSetSocketOption(int fd, jint cmd, jboolean on, jvalue value);
--- a/src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jdwp.agent/unix/native/libdt_socket/socket_md.c	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -126,9 +126,11 @@
     return rv;
 }
 
-struct hostent *
-dbgsysGetHostByName(char *hostname) {
-    return gethostbyname(hostname);
+int
+dbgsysGetAddrInfo(char *hostname, char *service,
+                  struct addrinfo *hints,
+                  struct addrinfo **results) {
+    return getaddrinfo(hostname, service, hints, results);
 }
 
 unsigned short
--- a/src/jdk.jdwp.agent/windows/native/libdt_socket/socket_md.c	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jdwp.agent/windows/native/libdt_socket/socket_md.c	Thu Feb 08 22:34:20 2018 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,6 +24,7 @@
  */
 #include <windows.h>
 #include <winsock2.h>
+#include <ws2tcpip.h>
 
 #include "sysSocket.h"
 #include "socketTransport.h"
@@ -197,9 +198,11 @@
     return send(fd, buf, (int)nBytes, flags);
 }
 
-struct hostent *
-dbgsysGetHostByName(char *hostname) {
-    return gethostbyname(hostname);
+int
+dbgsysGetAddrInfo(char *hostname, char *service,
+                  struct addrinfo *hints,
+                  struct addrinfo **result) {
+  return getaddrinfo(hostname, service, hints, result);
 }
 
 unsigned short
@@ -223,7 +226,7 @@
 
     if (getsockopt(fd, SOL_SOCKET, SO_LINGER, (char *)&l, &len) == 0) {
         if (l.l_onoff == 0) {
-            WSASendDisconnect(fd, NULL);
+            shutdown(fd, SD_SEND);
         }
     }
     return closesocket(fd);
@@ -239,7 +242,11 @@
 
 uint32_t
 dbgsysInetAddr(const char* cp) {
-    return (uint32_t)inet_addr(cp);
+    uint32_t addr;
+    if (inet_pton(AF_INET, cp, &addr) < 1) {
+      return -1;
+    }
+    return addr;
 }
 
 uint32_t
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_ja.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_ja.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -172,138 +172,142 @@
 
 jshell.fix.wrong.shortcut =[Shift]-[Tab]\u306E\u5F8C\u306E\u6587\u5B57\u304C\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57\u3067\u3059\u3002\n\u81EA\u52D5\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u306F"i"\u3001\u5909\u6570\u306E\u4F5C\u6210\u306B\u306F"v"\u3001\u30E1\u30BD\u30C3\u30C9\u306E\u4F5C\u6210\u306B\u306F"m"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u8A73\u7D30\u306F\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n/help shortcuts
 
-help.usage = \u4F7F\u7528\u65B9\u6CD5:   jshell <option>... <load file>...\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:\n    --class-path <path>   \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --module-path <path>  \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --add-modules <module>(,<module>)*\n                          \u89E3\u6C7A\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u307E\u305F\u306F<module>\u304CALL-MODULE-PATH\n                            \u3067\u3042\u308B\u5834\u5408\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306E\u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --startup <file>      \u8D77\u52D5\u5B9A\u7FA9\u306E\u4EE3\u66FF\u3068\u3057\u3066\u5B9F\u884C\u3055\u308C\u307E\u3059\n    --no-startup          \u8D77\u52D5\u5B9A\u7FA9\u3092\u5B9F\u884C\u3057\u307E\u305B\u3093\n    --feedback <mode>     \u521D\u671F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\u30E2\u30FC\u30C9\u306F\n                            \u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B(silent\u3001concise\u3001normal\u307E\u305F\u306Fverbose)\u304B\u3001\n                            \u4E8B\u524D\u306B\u30E6\u30FC\u30B6\u30FC\u304C\u5B9A\u7FA9\u3067\u304D\u307E\u3059\n    -q                    \u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback concise\u3068\u540C\u3058\n    -s                    \u975E\u5E38\u306B\u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback silent\u3068\u540C\u3058\n    -v                    \u8A73\u7D30\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback verbose\u3068\u540C\u3058\n    -J<flag>              <flag>\u3092\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3057\u307E\u3059\u3002\n                            \u5B9F\u884C\u6642\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-J\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -R<flag>              <flag>\u3092\u30EA\u30E2\u30FC\u30C8\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30EA\u30E2\u30FC\u30C8\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-R\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -C<flag>              <flag>\u3092\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30B3\u30F3\u30D1\u30A4\u30E9\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-C\u3092\u4F7F\u7528\u3057\u307E\u3059\n    --version             \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --show-version        \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D9A\u884C\u3057\u307E\u3059\n    --help                \u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u3053\u306E\u6982\u8981\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --help-extra, -X      \
-\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n\u30D5\u30A1\u30A4\u30EB\u5F15\u6570\u306B\u306F\u3001\u30D5\u30A1\u30A4\u30EB\u540D\u304B\u3001\u307E\u305F\u306F\u4E8B\u524D\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u540D(DEFAULT\u3001\nPRINTING\u307E\u305F\u306FJAVASE)\u306E1\u3064\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\u30ED\u30FC\u30C9\u30FB\u30D5\u30A1\u30A4\u30EB\u3067\u3082\u3001\u5BFE\u8A71\u578BI/O\u3092\u4F7F\u7528\u305B\u305A\u306B\u3001"-"\u3092\u6307\u5B9A\u3057\u3066\u6A19\u6E96\u5165\u529B\u3092\u793A\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\n
-
-help.usage.x = \    --add-exports <module>/<package>   \u6307\u5B9A\u3057\u305F\u30E2\u30B8\u30E5\u30FC\u30EB\u56FA\u6709\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u30B9\u30CB\u30DA\u30C3\u30C8\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059\n    --execution <spec>                 \u4EE3\u66FF\u5B9F\u884C\u30A8\u30F3\u30B8\u30F3\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n                                         \u3053\u3053\u3067\u3001<spec>\u306FExecutionControl spec\u3067\u3059\u3002\n                                         spec\u306E\u69CB\u6587\u306B\u3064\u3044\u3066\u306F\u3001\u30D1\u30C3\u30B1\u30FC\u30B8jdk.jshell.spi\u306E\n                                         \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n    \n\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n
+help.usage = \u4F7F\u7528\u65B9\u6CD5:   jshell <option>... <load-file>...\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:\n    --class-path <path>   \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --module-path <path>  \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --add-modules <module>(,<module>)*\n                          \u89E3\u6C7A\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u307E\u305F\u306F<module>\u304CALL-MODULE-PATH\n                            \u3067\u3042\u308B\u5834\u5408\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306E\u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --startup <file>      \u8D77\u52D5\u5B9A\u7FA9\u306E\u4EE3\u66FF\u3068\u3057\u3066\u5B9F\u884C\u3055\u308C\u307E\u3059\n    --no-startup          \u8D77\u52D5\u5B9A\u7FA9\u3092\u5B9F\u884C\u3057\u307E\u305B\u3093\n    --feedback <mode>     \u521D\u671F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\u30E2\u30FC\u30C9\u306F\n                            \u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B(silent\u3001concise\u3001normal\u307E\u305F\u306Fverbose)\u304B\u3001\n                            \u4E8B\u524D\u306B\u30E6\u30FC\u30B6\u30FC\u304C\u5B9A\u7FA9\u3067\u304D\u307E\u3059\n    -q                    \u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback concise\u3068\u540C\u3058\n    -s                    \u975E\u5E38\u306B\u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback silent\u3068\u540C\u3058\n    -v                    \u8A73\u7D30\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback verbose\u3068\u540C\u3058\n    -J<flag>              <flag>\u3092\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3057\u307E\u3059\u3002\n                            \u5B9F\u884C\u6642\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-J\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -R<flag>              <flag>\u3092\u30EA\u30E2\u30FC\u30C8\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30EA\u30E2\u30FC\u30C8\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-R\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -C<flag>              <flag>\u3092\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30B3\u30F3\u30D1\u30A4\u30E9\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-C\u3092\u4F7F\u7528\u3057\u307E\u3059\n    --version             \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --show-version        \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D9A\u884C\u3057\u307E\u3059\n    --help                \u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u3053\u306E\u6982\u8981\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --help-extra, -X      \
+\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n\n\u30D5\u30A1\u30A4\u30EB\u5F15\u6570\u306B\u306F\u3001\u30D5\u30A1\u30A4\u30EB\u540D\u304B\u3001\u307E\u305F\u306F\u4E8B\u524D\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u540D(DEFAULT\u3001\nPRINTING\u307E\u305F\u306FJAVASE)\u306E1\u3064\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\nload-file\u3067\u3082\u3001\u5BFE\u8A71\u578BI/O\u3092\u4F7F\u7528\u305B\u305A\u306B\u3001"-"\u3092\u6307\u5B9A\u3057\u3066\u6A19\u6E96\u5165\u529B\u3092\u793A\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\n\n\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3(--class-path\u3001--module-path\u3001--add-modules)\u306E\n\u8A73\u7D30\u306F\u3001\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\t/help context\n\n\u30D1\u30B9\u306B\u306F\u3001\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3068\u30A2\u30FC\u30AB\u30A4\u30D6\u304C\u30EA\u30B9\u30C8\u3055\u308C\u307E\u3059\u3002Windows\u306E\u5834\u5408\u306F\u3001\n\u30BB\u30DF\u30B3\u30ED\u30F3(;)\u3092\u4F7F\u7528\u3057\u3066\u30D1\u30B9\u306E\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306F\u3001\n\u30B3\u30ED\u30F3(:)\u3092\u4F7F\u7528\u3057\u3066\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n
+help.usage.x = \    --add-exports <module>/<package>   \u5B9A\u7FA9\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u308B\u3068\n                                         \u307F\u306A\u3055\u308C\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --execution <spec>                 \u4EE3\u66FF\u5B9F\u884C\u30A8\u30F3\u30B8\u30F3\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n                                         \u3053\u3053\u3067\u3001<spec>\u306FExecutionControl spec\u3067\u3059\u3002\n                                         spec\u306E\u69CB\u6587\u306B\u3064\u3044\u3066\u306F\u3001\u30D1\u30C3\u30B1\u30FC\u30B8jdk.jshell.spi\u306E\n                                         \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n    \n\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002\n
 
 help.list.summary = \u5165\u529B\u3057\u305F\u30BD\u30FC\u30B9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
 help.list.args = [<name or id>|-all|-start]
-help.list =\u30B9\u30CB\u30DA\u30C3\u30C8ID\u304C\u4ED8\u304F\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30BD\u30FC\u30B9\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\n/list\n\t\u5165\u529B\u3057\u305F\u3001\u307E\u305F\u306F/open\u3067\u8AAD\u307F\u53D6\u3063\u305F\u30B3\u30FC\u30C9\u306E\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/list -start\n\t\u81EA\u52D5\u7684\u306B\u8A55\u4FA1\u3055\u308C\u305F\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/list -all\n\t\u5931\u6557\u3001\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/list <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/list <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/list <id> <id>...\n\t\u6307\u5B9A\u3057\u305F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/list <id>-<id>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u7BC4\u56F2\u5185\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
+help.list =\u30B9\u30CB\u30DA\u30C3\u30C8ID\u304C\u4ED8\u304F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\n/list\n\t\u5165\u529B\u3057\u305F\u3001\u307E\u305F\u306F/open\u3067\u8AAD\u307F\u53D6\u3063\u305F\u30B3\u30FC\u30C9\u306E\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/list -start\n\t\u8A55\u4FA1\u3055\u308C\u305F\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/list -all\n\t\u5931\u6557\u3001\u4E0A\u66F8\u304D\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/list <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/list <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\t1\u3064\u4EE5\u4E0A\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044
 
-help.edit.summary = \u540D\u524D\u307E\u305F\u306FID\u3067\u53C2\u7167\u3055\u308C\u308B\u30BD\u30FC\u30B9\u30FB\u30A8\u30F3\u30C8\u30EA\u3092\u7DE8\u96C6\u3057\u307E\u3059
+help.edit.summary = \u30BD\u30FC\u30B9\u30FB\u30A8\u30F3\u30C8\u30EA\u3092\u7DE8\u96C6\u3057\u307E\u3059
 help.edit.args = <name or id>
-help.edit =\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u3067\u30B9\u30CB\u30DA\u30C3\u30C8\u307E\u305F\u306F\u30BD\u30FC\u30B9\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\u3002\n\u4F7F\u7528\u3059\u308B\u30A8\u30C7\u30A3\u30BF\u306F/set editor\u3067\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002\n\u30A8\u30C7\u30A3\u30BF\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3001\u7C21\u6613\u30A8\u30C7\u30A3\u30BF\u304C\u8D77\u52D5\u3055\u308C\u307E\u3059\u3002\n\n/edit <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/edit <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\n\n/edit <id> <id>...\n\t\u6307\u5B9A\u3057\u305F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\n\n/edit <id>-<id>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u7BC4\u56F2\u5185\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\n\n/edit -start\n\t\u81EA\u52D5\u7684\u306B\u8A55\u4FA1\u3055\u308C\u305F\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\u3002\u306A\u3093\u3089\u304B\u306E\u5909\u66F4\u304C\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\n\t\u3067\u767A\u751F\u3057\u3066\u3082\u3001\u8D77\u52D5\u8A2D\u5B9A\u306B\u306F\u5F71\u97FF\u3042\u308A\u307E\u305B\u3093\n\n/edit -all\n\t\u5931\u6557\u3001\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\n\n/edit\n\t\u5165\u529B\u3057\u305F\u3001\u307E\u305F\u306F/open\u3067\u8AAD\u307F\u53D6\u3063\u305F\u30B3\u30FC\u30C9\u306E\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059
+help.edit =\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u3067\u30BD\u30FC\u30B9\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\u3002\n\u4F7F\u7528\u3059\u308B\u30A8\u30C7\u30A3\u30BF\u306F/set editor\u3067\u8A2D\u5B9A\u3055\u308C\u307E\u3059\u3002\u30A8\u30C7\u30A3\u30BF\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306F\u3001\n\u6B21\u306E\u74B0\u5883\u5909\u6570\u304C\u9806\u756A\u306B\u30C1\u30A7\u30C3\u30AF\u3055\u308C\u307E\u3059: JSHELLEDITOR\u3001VISUAL\u3001EDITOR\u3002\n\u30A8\u30C7\u30A3\u30BF\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u304A\u3089\u305A\u3001\u30A8\u30C7\u30A3\u30BF\u74B0\u5883\u5909\u6570\u304C\u3069\u308C\u3082\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306F\u3001\n\u7C21\u6613\u30A8\u30C7\u30A3\u30BF\u304C\u8D77\u52D5\u3057\u307E\u3059\u3002\n\n/edit <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/edit <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\u3002\n\t1\u3064\u4EE5\u4E0A\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n\n/edit -start\n\t\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\u3002\u306A\u3093\u3089\u304B\u306E\u5909\u66F4\u304C\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\n\t\u3067\u767A\u751F\u3057\u3066\u3082\u3001\u8D77\u52D5\u8A2D\u5B9A\u306B\u306F\u5F71\u97FF\u3042\u308A\u307E\u305B\u3093\n\n/edit -all\n\t\u5931\u6557\u3001\u4E0A\u66F8\u304D\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059\n\n/edit\n\t\u5165\u529B\u3057\u305F\u3001\u307E\u305F\u306F/open\u3067\u8AAD\u307F\u53D6\u3063\u305F\u30B3\u30FC\u30C9\u306E\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u307E\u3059
 
-help.drop.summary = \u540D\u524D\u307E\u305F\u306FID\u3067\u53C2\u7167\u3055\u308C\u308B\u30BD\u30FC\u30B9\u30FB\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664\u3057\u307E\u3059
+help.drop.summary = \u30BD\u30FC\u30B9\u30FB\u30A8\u30F3\u30C8\u30EA\u3092\u524A\u9664\u3057\u307E\u3059
 help.drop.args = <name or id>
-help.drop =\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059 -- \u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306B\u3057\u307E\u3059\u3002\n\n/drop <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\n\n/drop <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\n\n/drop <id> <id>...\n\t\u6307\u5B9A\u3057\u305F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\n\n/drop <id>-<id>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u7BC4\u56F2\u5185\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059
+help.drop =\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059 -- \u975E\u30A2\u30AF\u30C6\u30A3\u30D6\u306B\u3057\u307E\u3059\u3002\n\n/drop <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\n\n/drop <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u3002\n\t1\u3064\u4EE5\u4E0A\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044
 
-help.save.summary = \u30D5\u30A1\u30A4\u30EB\u306B\u30B9\u30CB\u30DA\u30C3\u30C8\u30FB\u30BD\u30FC\u30B9\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002
+help.save.summary = \u30D5\u30A1\u30A4\u30EB\u306B\u30B9\u30CB\u30DA\u30C3\u30C8\u30FB\u30BD\u30FC\u30B9\u3092\u4FDD\u5B58\u3057\u307E\u3059
 help.save.args = [-all|-history|-start] <file>
-help.save =\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u307E\u305F\u306F\u30B3\u30DE\u30F3\u30C9(\u3042\u308B\u3044\u306F\u305D\u306E\u4E21\u65B9)\u3092\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\n/save <file>\n\t\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30BD\u30FC\u30B9\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\n/save -all <file>\n\t\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30BD\u30FC\u30B9\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\t\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u6E08\u3001\u5931\u6557\u304A\u3088\u3073\u8D77\u52D5\u30B3\u30FC\u30C9\u3092\u542B\u3080\u30BD\u30FC\u30B9\u304C\u542B\u307E\u308C\u307E\u3059\u3002\n\n/save -history <file>\n\tjshell\u306E\u8D77\u52D5\u4EE5\u964D\u5165\u529B\u3055\u308C\u305F\u3001\u3059\u3079\u3066\u306E\u30B3\u30DE\u30F3\u30C9\u304A\u3088\u3073\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u9806\u6B21\u5C65\u6B74\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\n/save -start <file>\n\t\u73FE\u5728\u306E\u8D77\u52D5\u5B9A\u7FA9\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\n/save <id> <file>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4FDD\u5B58\u3057\u307E\u3059\n\n/save <id> <id>... <file>\n\t\u6307\u5B9A\u3057\u305F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4FDD\u5B58\u3057\u307E\u3059\n\n/save <id>-<id> <file>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u7BC4\u56F2\u5185\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4FDD\u5B58\u3057\u307E\u3059
+help.save =\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u307E\u305F\u306F\u30B3\u30DE\u30F3\u30C9(\u3042\u308B\u3044\u306F\u305D\u306E\u4E21\u65B9)\u3092\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\n/save <file>\n\t\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30BD\u30FC\u30B9\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\n/save -all <file>\n\t\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30BD\u30FC\u30B9\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\t\u4E0A\u66F8\u304D\u6E08\u3001\u5931\u6557\u304A\u3088\u3073\u8D77\u52D5\u30B3\u30FC\u30C9\u3092\u542B\u3080\u30BD\u30FC\u30B9\u304C\u542B\u307E\u308C\u307E\u3059\n\n/save -history <file>\n\tjshell\u30C4\u30FC\u30EB\u306E\u8D77\u52D5\u4EE5\u964D\u5165\u529B\u3055\u308C\u305F\u3001\u3059\u3079\u3066\u306E\u30B3\u30DE\u30F3\u30C9\u304A\u3088\u3073\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\n\t\u9806\u6B21\u5C65\u6B74\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\n/save -start <file>\n\t\u73FE\u5728\u306E\u8D77\u52D5\u5B9A\u7FA9\u3092\u30D5\u30A1\u30A4\u30EB\u306B\u4FDD\u5B58\u3057\u307E\u3059\n\n/save <id> <file>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002\n\t1\u3064\u4EE5\u4E0A\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044
 
 help.open.summary = \u30BD\u30FC\u30B9\u306E\u5165\u529B\u3068\u3057\u3066\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304D\u307E\u3059
 help.open.args = <file>
-help.open =\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304D\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u3068\u3057\u3066\u305D\u306E\u5185\u5BB9\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002\n\n/open <file>\n\tjshell\u306E\u5165\u529B\u3068\u3057\u3066\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002
+help.open =\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304D\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u3068\u3057\u3066\u305D\u306E\u5185\u5BB9\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002\n\n/open <file>\n\tjshell\u30C4\u30FC\u30EB\u306E\u5165\u529B\u3068\u3057\u3066\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059\u3002\n\n<file>\u306F\u3001\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304B\u3001\u4E8B\u524D\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u540D\n(DEFAULT\u3001PRINTING\u307E\u305F\u306FJAVASE)\u306E\u3044\u305A\u308C\u304B\u306B\u306A\u308A\u307E\u3059\u3002\n\u3053\u308C\u3089\u306F\u305D\u308C\u305E\u308C\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8(-default\u3067\u4F7F\u7528)\u3001\nprint()\u3001println()\u3001printf()\u30E1\u30BD\u30C3\u30C9\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5B9A\u7FA9\u3001\u307E\u305F\u306F\n\u3059\u3079\u3066\u306EJava SE\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u3059\u3002\n
 
 help.vars.summary = \u5BA3\u8A00\u3055\u308C\u305F\u5909\u6570\u304A\u3088\u3073\u305D\u306E\u5024\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
 help.vars.args = [<name or id>|-all|-start]
-help.vars =jshell\u5909\u6570\u306E\u578B\u3001\u540D\u524D\u304A\u3088\u3073\u5024\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\n/vars\n\t\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306Ajshell\u5909\u6570\u306E\u578B\u3001\u540D\u524D\u304A\u3088\u3073\u5024\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/vars <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306Ejshell\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u5909\u6570\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/vars <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306Ejshell\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/vars <id> <id>... <file>\n\t\u6307\u5B9A\u3057\u305F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306Ejshell\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/vars <id>-<id> <file>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u7BC4\u56F2\u5185\u306Ejshell\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/vars -start\n\t\u81EA\u52D5\u7684\u306B\u8FFD\u52A0\u3055\u308C\u305F\u8D77\u52D5jshell\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/vars -all\n\t\u5931\u6557\u3001\u4E0A\u66F8\u304D\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306Ejshell\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
+help.vars =\u5165\u529B\u3055\u308C\u305F\u5909\u6570\u306E\u578B\u3001\u540D\u524D\u304A\u3088\u3073\u5024\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\n/vars\n\t\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u5909\u6570\u306E\u578B\u3001\u540D\u524D\u304A\u3088\u3073\u5024\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/vars <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u5909\u6570\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/vars <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\t1\u3064\u4EE5\u4E0A\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n\n/vars -start\n\t\u8A55\u4FA1\u3055\u308C\u305F\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/vars -all\n\t\u5931\u6557\u3001\u4E0A\u66F8\u304D\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u5909\u6570\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
 
 help.methods.summary = \u5BA3\u8A00\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9\u304A\u3088\u3073\u305D\u306E\u7F72\u540D\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
 help.methods.args = [<name or id>|-all|-start]
-help.methods =jshell\u30E1\u30BD\u30C3\u30C9\u306E\u540D\u524D\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u578B\u304A\u3088\u3073\u623B\u308A\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\n/methods\n\t\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306Ajshell\u30E1\u30BD\u30C3\u30C9\u306E\u540D\u524D\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u578B\u304A\u3088\u3073\u623B\u308A\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/methods <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306Ejshell\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30E1\u30BD\u30C3\u30C9\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/methods <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306Ejshell\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/methods <id> <id>... <file>\n\t\u6307\u5B9A\u3057\u305F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306Ejshell\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/methods <id>-<id> <file>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u7BC4\u56F2\u5185\u306Ejshell\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/methods -start\n\t\u81EA\u52D5\u7684\u306B\u8FFD\u52A0\u3055\u308C\u305F\u8D77\u52D5jshell\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/methods -all\n\t\u5931\u6557\u3001\u4E0A\u66F8\u304D\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
+help.methods =\u5165\u529B\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9\u306E\u540D\u524D\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30BF\u30A4\u30D7\u304A\u3088\u3073\u623B\u308A\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\n/methods\n\t\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30E1\u30BD\u30C3\u30C9\u306E\u540D\u524D\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30BF\u30A4\u30D7\u304A\u3088\u3073\u623B\u308A\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/methods <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30E1\u30BD\u30C3\u30C9\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/methods <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\t1\u3064\u4EE5\u4E0A\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n\n/methods -start\n\t\u8A55\u4FA1\u3055\u308C\u305F\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u5185\u306E\u30E1\u30BD\u30C3\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/methods -all\n\t\u5931\u6557\u3001\u4E0A\u66F8\u304D\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
 
-help.types.summary = \u5BA3\u8A00\u3055\u308C\u305F\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
+help.types.summary = \u578B\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
 help.types.args =[<name or id>|-all|-start]
-help.types =jshell\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u304A\u3088\u3073\u5217\u6319\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\n/types\n\t\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306Ajshell\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u304A\u3088\u3073\u5217\u6319\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\n/types <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306Ejshell\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u578B\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/types <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306Ejshell\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/types <id> <id>... <file>\n\t\u6307\u5B9A\u3057\u305F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306Ejshell\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/types <id>-<id> <file>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u7BC4\u56F2\u5185\u306Ejshell\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/types -start\n\t\u81EA\u52D5\u7684\u306B\u8FFD\u52A0\u3055\u308C\u305F\u8D77\u52D5jshell\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/types -all\n\t\u5931\u6557\u3001\u4E0A\u66F8\u304D\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306Ejshell\u578B\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
+help.types =\u5165\u529B\u3055\u308C\u305F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\n/types\n\t\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u578B\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/types <name>\n\t\u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u578B\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059(\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u30D7\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9)\n\n/types <id>\n\t\u6307\u5B9A\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u578B\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\t1\u3064\u4EE5\u4E0A\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n\n/types -start\n\t\u8A55\u4FA1\u3055\u308C\u305F\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u578B\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/types -all\n\t\u5931\u6557\u3001\u4E0A\u66F8\u304D\u6E08\u3001\u524A\u9664\u6E08\u304A\u3088\u3073\u8D77\u52D5\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u578B\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
 
 help.imports.summary = \u30A4\u30F3\u30DD\u30FC\u30C8\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059
 help.imports.args =
-help.imports =\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306Ajshell\u306E\u30A4\u30F3\u30DD\u30FC\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002
+help.imports =\u73FE\u5728\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u30A4\u30F3\u30DD\u30FC\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\u3053\u308C\u306B\u306F\u3001\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304B\u3089\u306E\n\u30A4\u30F3\u30DD\u30FC\u30C8\u304C\u542B\u307E\u308C\u307E\u3059\u3002
 
-help.exit.summary = exit jshell
+help.exit.summary = jshell\u30C4\u30FC\u30EB\u3092\u7D42\u4E86\u3057\u307E\u3059
 help.exit.args =[<integer-expression-snippet>]
-help.exit =jshell\u30C4\u30FC\u30EB\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002\u4F5C\u696D\u306F\u4FDD\u5B58\u3055\u308C\u307E\u305B\u3093\u3002\n\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u3059\u3079\u3066\u306E\u4F5C\u696D\u3092\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\n\n/exit\n\tjshell\u30C4\u30FC\u30EB\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002\u7D42\u4E86\u30B9\u30C6\u30FC\u30BF\u30B9\u306F\u30BC\u30ED\u3067\u3059\u3002\n\n/exit <integer-expression-snippet>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u8A55\u4FA1\u3057\u307E\u3059\u3002\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u5931\u6557\u3059\u308B\u304B\u3001\u6574\u6570\u5F0F\u3067\u306F\u306A\u3044\u5834\u5408\u3001\n\t\u30A8\u30E9\u30FC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u305D\u308C\u4EE5\u5916\u306E\u5834\u5408\u3001jshell\u30C4\u30FC\u30EB\u306F\u3001\n\t\u7D42\u4E86\u30B9\u30C6\u30FC\u30BF\u30B9\u3068\u3057\u3066\u5F0F\u306E\u5024\u3068\u3068\u3082\u306B\u7D42\u4E86\u3057\u307E\u3059
+help.exit =jshell\u30C4\u30FC\u30EB\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002\u4F5C\u696D\u306F\u4FDD\u5B58\u3055\u308C\u307E\u305B\u3093\u3002\n\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u3059\u3079\u3066\u306E\u4F5C\u696D\u3092\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\n\n/exit\n\tjshell\u30C4\u30FC\u30EB\u3092\u7D42\u4E86\u3057\u307E\u3059\u3002\u7D42\u4E86\u30B9\u30C6\u30FC\u30BF\u30B9\u306F\u30BC\u30ED\u3067\u3059\n\n/exit <integer-expression-snippet>\n\t\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u8A55\u4FA1\u3057\u307E\u3059\u3002\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u5931\u6557\u3059\u308B\u304B\u3001\u6574\u6570\u5F0F\u3067\u306F\u306A\u3044\u5834\u5408\u3001\n\t\u30A8\u30E9\u30FC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u305D\u308C\u4EE5\u5916\u306E\u5834\u5408\u3001jshell\u30C4\u30FC\u30EB\u306F\u3001\n\t\u5F0F\u306E\u5024\u3092\u7D42\u4E86\u30B9\u30C6\u30FC\u30BF\u30B9\u3068\u3057\u3066\u7D42\u4E86\u3057\u307E\u3059
 
-help.reset.summary = reset jshell
+help.reset.summary = jshell\u30C4\u30FC\u30EB\u3092\u30EA\u30BB\u30C3\u30C8\u3057\u307E\u3059
 help.reset.args = [-class-path <path>] [-module-path <path>] [-add-modules <modules>]...
-help.reset =jshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30FC\u30C9\u304A\u3088\u3073\u5B9F\u884C\u72B6\u614B\u3092\u30EA\u30BB\u30C3\u30C8\u3057\u307E\u3059:\n\t* \u5165\u529B\u3057\u305F\u3059\u3079\u3066\u306E\u30B3\u30FC\u30C9\u304C\u5931\u308F\u308C\u307E\u3059\u3002\n\t* \u8D77\u52D5\u30B3\u30FC\u30C9\u304C\u518D\u5B9F\u884C\u3055\u308C\u307E\u3059\u3002\n\t* \u5B9F\u884C\u72B6\u614B\u306F\u518D\u5EA6\u958B\u59CB\u3055\u308C\u307E\u3059\u3002\n\t\u30C4\u30FC\u30EB\u8A2D\u5B9A\u306F\u6B21\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u3088\u3046\u306B\u4FDD\u6301\u3055\u308C\u307E\u3059: /set ...\n\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u3059\u3079\u3066\u306E\u4F5C\u696D\u3092\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\n/reset\u30B3\u30DE\u30F3\u30C9\u306F\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u53D7\u3051\u5165\u308C\u307E\u3059\u3002\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\n\t/help context\n
+help.reset =jshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30FC\u30C9\u304A\u3088\u3073\u5B9F\u884C\u72B6\u614B\u3092\u30EA\u30BB\u30C3\u30C8\u3057\u307E\u3059:\n\t* \u5165\u529B\u3057\u305F\u3059\u3079\u3066\u306E\u30B3\u30FC\u30C9\u304C\u5931\u308F\u308C\u307E\u3059\n\t* \u5B9F\u884C\u72B6\u614B\u306F\u518D\u5EA6\u958B\u59CB\u3055\u308C\u307E\u3059\n\t* \u8D77\u52D5\u30B3\u30FC\u30C9\u304C\u518D\u5B9F\u884C\u3055\u308C\u307E\u3059\n\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u3059\u3079\u3066\u306E\u4F5C\u696D\u3092\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n/reset\u30B3\u30DE\u30F3\u30C9\u306F\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u53D7\u3051\u5165\u308C\u307E\u3059\u3002\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\n\t/help context\n
 
 help.reload.summary = \u30EA\u30BB\u30C3\u30C8\u3057\u3066\u95A2\u9023\u3059\u308B\u5C65\u6B74\u3092\u30EA\u30D7\u30EC\u30A4\u3057\u307E\u3059 -- \u73FE\u5728\u307E\u305F\u306F\u4EE5\u524D(-restore)
 help.reload.args = [-restore] [-quiet] [-class-path <path>] [-module-path <path>]...
-help.reload =jshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30FC\u30C9\u304A\u3088\u3073\u5B9F\u884C\u72B6\u614B\u3092\u30EA\u30BB\u30C3\u30C8\u3057\u3001\u5404\u6709\u52B9\u30B9\u30CB\u30DA\u30C3\u30C8\n\u304A\u3088\u3073\u4EFB\u610F\u306E/drop\u30B3\u30DE\u30F3\u30C9\u3092\u5165\u529B\u3055\u308C\u305F\u9806\u756A\u3067\u30EA\u30D7\u30EC\u30A4\u3057\u307E\u3059\u3002\n\n/reload\n\t\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u3001jshell\u304C\u5165\u529B\u3055\u308C\u305F\u3001\u3042\u308B\u3044\u306F/reset\u307E\u305F\u306F\n\t/reload\u30B3\u30DE\u30F3\u30C9\u304C\u5B9F\u884C\u3055\u308C\u305F(\u6700\u65B0\u306E\u3044\u305A\u308C\u304B)\u4EE5\u964D\u306E\u6709\u52B9\u306A\u5C65\u6B74\u304C\n\t\u30EA\u30D7\u30EC\u30A4\u3055\u308C\u307E\u3059\u3002\n\n/reload -restore\n\t\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u3001jshell\u304C\u5165\u529B\u3055\u308C\u305F\u3001\u3042\u308B\u3044\u306F/reset\u3001/reload\u307E\u305F\u306F/env\u30B3\u30DE\u30F3\u30C9\n\t\u304C\u5B9F\u884C\u3055\u308C\u305F\u4EE5\u524D\u3068\u6700\u65B0\u306E\u6642\u9593\u306E\u9593\u306E\u6709\u52B9\u306A\u5C65\u6B74\u304C\u30EA\u30D7\u30EC\u30A4\u3055\u308C\u307E\u3059\u3002\n\t\u305D\u306E\u305F\u3081\u3001\u3053\u308C\u306F\u4EE5\u524D\u306Ejshell\u30C4\u30FC\u30EB\u30FB\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u5FA9\u5143\u306B\n\t\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\n\n/reload [-restore] -quiet\n\t'-quiet'\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u30EA\u30D7\u30EC\u30A4\u304C\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002\u30A8\u30E9\u30FC\u306F\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\n\u4E0A\u306E\u5404\u3005\u306F\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u53D7\u3051\u5165\u308C\u307E\u3059\u3002\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\n\t/help context\n\n\u4F8B:\n\n\t/reload -add-modules com.greetings -restore
+help.reload =jshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30FC\u30C9\u304A\u3088\u3073\u5B9F\u884C\u72B6\u614B\u3092\u30EA\u30BB\u30C3\u30C8\u3057\u3001\u5404\u6709\u52B9\u30B9\u30CB\u30DA\u30C3\u30C8\n\u304A\u3088\u3073\u4EFB\u610F\u306E/drop\u30B3\u30DE\u30F3\u30C9\u3092\u5165\u529B\u3055\u308C\u305F\u9806\u756A\u3067\u30EA\u30D7\u30EC\u30A4\u3057\u307E\u3059\u3002\n\n/reload\n\t\u30EA\u30BB\u30C3\u30C8\u3057\u3066\u3001jshell\u30C4\u30FC\u30EB\u306E\u5165\u529B\u3068\u3001/reset\u307E\u305F\u306F/reload\u30B3\u30DE\u30F3\u30C9\u306E\n\t\u5B9F\u884C\u306E\u3069\u3061\u3089\u304B(\u76F4\u8FD1\u306B\u884C\u308F\u308C\u305F\u65B9) \u4EE5\u964D\u306E\u6709\u52B9\u306A\u5C65\u6B74\u3092\u30EA\u30D7\u30EC\u30A4\n\t\u3057\u307E\u3059\n\n/reload -restore\n\t\u30EA\u30BB\u30C3\u30C8\u3057\u3066\u3001jshell\u30C4\u30FC\u30EB\u304C\u5165\u529B\u3055\u308C\u305F\u3001\u3042\u308B\u3044\u306F/reset\u3001/reload\u307E\u305F\u306F\n\t/env\u30B3\u30DE\u30F3\u30C9\u304C\u5B9F\u884C\u3055\u308C\u305F\u3001\u6700\u65B0\u306E\u6642\u9593\u3068\u524D\u56DE\u306E\u6642\u9593\u306E\u9593\u306E\u6709\u52B9\u306A\u5C65\u6B74\u3092\n\t\u30EA\u30D7\u30EC\u30A4\u3057\u307E\u3059\u3002\u3053\u306E\u3088\u3046\u306B\u3001\u3053\u308C\u306F\u4EE5\u524D\u306Ejshell\u30C4\u30FC\u30EB\u30FB\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u5FA9\u5143\u306B\n\t\u4F7F\u7528\u3067\u304D\u307E\u3059\n\n/reload [-restore] -quiet\n\t'-quiet'\u5F15\u6570\u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u30EA\u30D7\u30EC\u30A4\u304C\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002\u305F\u3060\u3057\u3001\n\t\u30A8\u30E9\u30FC\u306F\u8868\u793A\u3055\u308C\u307E\u3059\n\n\u4E0A\u306E\u5404\u3005\u306F\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u53D7\u3051\u5165\u308C\u307E\u3059\u3002\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\n\t/help context\n\n\u4F8B:\n\n\t/reload -add-modules com.greetings -restore
 
 help.env.summary = \u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u307E\u305F\u306F\u5909\u66F4\u3057\u307E\u3059
 help.env.args = [-class-path <path>] [-module-path <path>] [-add-modules <modules>] ...
-help.env =\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u307E\u305F\u306F\u5909\u66F4\u3057\u307E\u3059\u3002\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306F\u3001\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u3001\n\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306A\u3069\u3067\u3059\u3002\n/env\n\t\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u793A\u3057\u307E\u3059\u3002\n\n/env [-class-path <path>] [-module-path <path>] [-add-modules <modules>] ...\n\t1\u3064\u4EE5\u4E0A\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\n\t\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u5B9F\u884C\u72B6\u614B\u306F\u65B0\u3057\u3044\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u3001\n\t\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u30EA\u30D7\u30EC\u30A4\u3055\u308C\u307E\u3059\u3002\u305F\u3060\u3057\u30EA\u30D7\u30EC\u30A4\u306F\u8868\u793A\u3055\u308C\u305A\u3001\n\t\u30A8\u30E9\u30FC\u306F\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u3053\u308C\u306F\u6B21\u3068\u540C\u3058\u3067\u3059: /reload -quiet\n\t\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u8A73\u7D30\u306F\u3001\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\n\t\t/help context\n\n\t\u4F8B:\n\n\t\t/env -add-modules com.greetings
+help.env =\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u307E\u305F\u306F\u5909\u66F4\u3057\u307E\u3059\u3002\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306F\u3001\u30AF\u30E9\u30B9\u30D1\u30B9\u3001\n\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306A\u3069\u3067\u3059\u3002\n\n/env\n\t\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u8868\u793A\u3055\u308C\u3066\u3044\u308B\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u793A\u3057\u307E\u3059\n\n/env [-class-path <path>] [-module-path <path>] [-add-modules <modules>] ...\n\t1\u3064\u4EE5\u4E0A\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\n\t\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u5B9F\u884C\u72B6\u614B\u306F\u65B0\u3057\u3044\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u3001\n\t\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u30EA\u30D7\u30EC\u30A4\u3055\u308C\u307E\u3059\u3002\u305F\u3060\u3057\u30EA\u30D7\u30EC\u30A4\u306F\u8868\u793A\u3055\u308C\u305A\u3001\n\t\u30A8\u30E9\u30FC\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u3053\u308C\u306F\u6B21\u3068\u540C\u3058\u3067\u3059:\n\n\t\t/reload -quiet ...\n\n\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u8A73\u7D30\u306F\u3001\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\n\t/help context\n\n\t\u4F8B:\n\n\t/env -add-modules com.greetings
 
 help.history.summary = \u5165\u529B\u3057\u305F\u5185\u5BB9\u306E\u5C65\u6B74
 help.history.args =
-help.history =jshell\u306E\u8D77\u52D5\u4EE5\u964D\u5165\u529B\u3055\u308C\u305F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u5C65\u6B74\u3092\u8868\u793A\u3057\u307E\u3059\u3002
+help.history =jshell\u30C4\u30FC\u30EB\u306E\u8D77\u52D5\u4EE5\u964D\u5165\u529B\u3055\u308C\u305F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u5C65\u6B74\u3092\u8868\u793A\u3057\u307E\u3059\u3002
 
-help.debug.summary = jshell\u306E\u30C7\u30D0\u30C3\u30B0\u3092\u5207\u308A\u66FF\u3048\u307E\u3059
+help.debug.summary = jshell\u30C4\u30FC\u30EB\u306E\u30C7\u30D0\u30C3\u30B0\u3092\u5207\u308A\u66FF\u3048\u307E\u3059
 help.debug.args = [0][r][g][f][c][d][e]
-help.debug =jshell\u5B9F\u88C5\u306B\u5BFE\u3059\u308B\u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n0: \u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30D5\nr: \u30C4\u30FC\u30EB\u30FB\u30EC\u30D9\u30EB\u306E\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\ng: \u4E00\u822C\u7684\u306A\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\nf: \u30D5\u30A1\u30A4\u30EB\u30FB\u30DE\u30CD\u30FC\u30B8\u30E3\u306E\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\nc: \u5B8C\u4E86\u5206\u6790\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\nd: \u4F9D\u5B58\u6027\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\ne: \u30A4\u30D9\u30F3\u30C8\u30FB\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3
+help.debug =jshell\u30C4\u30FC\u30EB\u5B9F\u88C5\u306B\u5BFE\u3059\u308B\u30C7\u30D0\u30C3\u30B0\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n0: \u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30D5\nr: \u30C4\u30FC\u30EB\u30FB\u30EC\u30D9\u30EB\u306E\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\ng: \u4E00\u822C\u7684\u306A\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\nf: \u30D5\u30A1\u30A4\u30EB\u30FB\u30DE\u30CD\u30FC\u30B8\u30E3\u306E\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\nc: \u5B8C\u4E86\u5206\u6790\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\nd: \u4F9D\u5B58\u6027\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3\ne: \u30A4\u30D9\u30F3\u30C8\u30FB\u30C7\u30D0\u30C3\u30B0\u30FB\u30AA\u30F3
 
-help.help.summary = jshell\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u53D6\u5F97\u3057\u307E\u3059
+help.help.summary = jshell\u30C4\u30FC\u30EB\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u53D6\u5F97\u3057\u307E\u3059
 help.help.args = [<command>|<subject>]
-help.help =jshell\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n/help\n\tjshell\u30B3\u30DE\u30F3\u30C9\u304A\u3088\u3073\u30D8\u30EB\u30D7\u306E\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\n\n/help <command>\n\t\u6307\u5B9A\u3057\u305F\u30B3\u30DE\u30F3\u30C9\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u30B9\u30E9\u30C3\u30B7\u30E5\u3092\u542B\u3081\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\t\u5FC5\u8981\u306A\u306E\u306F\u30B3\u30DE\u30F3\u30C9\u306E\u6700\u521D\u306E\u6570\u6587\u5B57\u306E\u307F\u3067\u3059 -- \u8907\u6570\u3042\u308B\u5834\u5408\u306F\n\t\u305D\u308C\u305E\u308C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B:  /help /li\n\n/help <subject>\n\t\u6307\u5B9A\u3057\u305F\u30D8\u30EB\u30D7\u306E\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4F8B: /help intro
+help.help =jshell\u30C4\u30FC\u30EB\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n/help\n\tjshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u304A\u3088\u3073\u30D8\u30EB\u30D7\u306E\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\n\n/help <command>\n\t\u6307\u5B9A\u3057\u305F\u30B3\u30DE\u30F3\u30C9\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u30B9\u30E9\u30C3\u30B7\u30E5\u3092\u542B\u3081\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\t\u5FC5\u8981\u306A\u306E\u306F\u30B3\u30DE\u30F3\u30C9\u306E\u6700\u521D\u306E\u6570\u6587\u5B57\u306E\u307F\u3067\u3059 -- \u8907\u6570\u3042\u308B\u5834\u5408\u306F\n\t\u305D\u308C\u305E\u308C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B:  /help /li\n\n/help <subject>\n\t\u6307\u5B9A\u3057\u305F\u30D8\u30EB\u30D7\u306E\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4F8B: /help intro
 
-help.set.summary = jshell\u69CB\u6210\u60C5\u5831\u3092\u8A2D\u5B9A\u3057\u307E\u3059
+help.set.summary = \u69CB\u6210\u60C5\u5831\u3092\u8A2D\u5B9A\u3057\u307E\u3059
 help.set.args = editor|start|feedback|mode|prompt|truncation|format ...
-help.set =\u6B21\u306E\u3088\u3046\u306Ajshell\u69CB\u6210\u60C5\u5831\u3092\u8A2D\u5B9A\u3057\u307E\u3059:\n\u4F7F\u7528\u3059\u308B\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u3001\u4F7F\u7528\u3059\u308B\u8D77\u52D5\u5B9A\u7FA9\u3001\u65B0\u898F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3001\n\u30B3\u30DE\u30F3\u30C9\u30FB\u30D7\u30ED\u30F3\u30D7\u30C8\u3001\u4F7F\u7528\u3059\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u307E\u305F\u306F\u51FA\u529B\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3002\n\n/set editor [-wait] <command> <optional-arg>...\n\t/edit\u30B3\u30DE\u30F3\u30C9\u3067\u8D77\u52D5\u3059\u308B\u30B3\u30DE\u30F3\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\t<command>\u306F\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u4F9D\u5B58\u6587\u5B57\u5217\u3067\u3059\u3002\n\n/set start <file>\n\t\u6307\u5B9A\u3057\u305F<file>\u306E\u5185\u5BB9\u304C\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306B\u306A\u308A\u307E\u3059\u3002\n\n/set feedback <mode>\n\t\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306B\u5BFE\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u793A\u3059\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\n\n/set mode <mode> [<old-mode>] -command|-quiet|-delete\n\t\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u4F5C\u6210\u307E\u305F\u306F\u66F4\u65B0\u3057\u307E\u3059\u3002\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u65E2\u5B58\u306E\u30E2\u30FC\u30C9\u304B\u3089\u30B3\u30D4\u30FC\u3057\u307E\u3059\u3002\n\n/set prompt <mode> "<prompt>" "<continuation-prompt>"\n\t\u6307\u5B9A\u306E\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u306B\u5BFE\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\n\n/set truncation <mode> <length> <selector>...\n\t\u8868\u793A\u3055\u308C\u308B\u5024\u306E\u6700\u5927\u9577\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\n\n/set format <mode> <field> "<format>" <selector>...\n\t\u30BB\u30EC\u30AF\u30BF\u304C\u4E00\u81F4\u3057\u305F\u969B\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u3067\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u69CB\u6210\u3057\u307E\u3059\u3002\n\n/set\n\t/set\u30B3\u30DE\u30F3\u30C9\u3068\u3057\u3066editor\u3001start\u304A\u3088\u3073feedback\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\t\u524D\u8FF0\u306E\u3044\u305A\u308C\u304B\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001set\u5024\u3092\u7701\u7565\u3057\u307E\u3059\u3002\n\n\u3053\u308C\u3089\u306E\u5F62\u5F0F\u306E\u8A73\u7D30\u306F\u3001\u5F62\u5F0F\u3092\u6307\u5B9A\u3057\u3066/help\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B:   /help /set format
+help.set =\u6B21\u306E\u3088\u3046\u306Ajshell\u30C4\u30FC\u30EB\u69CB\u6210\u60C5\u5831\u3092\u8A2D\u5B9A\u3057\u307E\u3059:\n\u4F7F\u7528\u3059\u308B\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u3001\u4F7F\u7528\u3059\u308B\u8D77\u52D5\u5B9A\u7FA9\u3001\u65B0\u898F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3001\n\u30B3\u30DE\u30F3\u30C9\u30FB\u30D7\u30ED\u30F3\u30D7\u30C8\u3001\u4F7F\u7528\u3059\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u307E\u305F\u306F\u51FA\u529B\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3002\n\n/set editor [-wait] <command> <optional-arg>...\n\t/edit\u30B3\u30DE\u30F3\u30C9\u3067\u8D77\u52D5\u3059\u308B\u30B3\u30DE\u30F3\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\t<command>\u306F\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u4F9D\u5B58\u6587\u5B57\u5217\u3067\u3059\n\n/set start <file>\n\t\u6307\u5B9A\u3057\u305F<file>\u306E\u5185\u5BB9\u304C\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306B\u306A\u308A\u307E\u3059\n\n/set feedback <mode>\n\t\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306B\u5BFE\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u793A\u3059\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3057\u307E\u3059\n\n/set mode <mode> [<old-mode>] -command|-quiet|-delete\n\t\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u4F5C\u6210\u307E\u305F\u306F\u66F4\u65B0\u3057\u307E\u3059\u3002\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u65E2\u5B58\u306E\u30E2\u30FC\u30C9\u304B\u3089\u30B3\u30D4\u30FC\u3057\u307E\u3059\n\n/set prompt <mode> "<prompt>" "<continuation-prompt>"\n\t\u6307\u5B9A\u306E\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u306B\u5BFE\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\n\n/set truncation <mode> <length> <selector>...\n\t\u8868\u793A\u3055\u308C\u308B\u5024\u306E\u6700\u5927\u9577\u3092\u8A2D\u5B9A\u3057\u307E\u3059\n\n/set format <mode> <field> "<format>" <selector>...\n\t\u30BB\u30EC\u30AF\u30BF\u304C\u4E00\u81F4\u3057\u305F\u969B\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u8A2D\u5B9A\u3059\u308B\u3053\u3068\u3067\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u69CB\u6210\u3057\u307E\u3059\n\n/set\n\t/set\u30B3\u30DE\u30F3\u30C9\u3068\u3057\u3066editor\u3001start\u304A\u3088\u3073feedback\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\t\u524D\u8FF0\u306E\u3044\u305A\u308C\u304B\u306E\u8A2D\u5B9A\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001set\u5024\u3092\u7701\u7565\u3057\u307E\u3059\n\n\u3053\u308C\u3089\u306E\u5F62\u5F0F\u306E\u8A73\u7D30\u306F\u3001\u5F62\u5F0F\u3092\u6307\u5B9A\u3057\u3066/help\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B:   /help /set format
 
-help.quest.summary = jshell\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u53D6\u5F97\u3057\u307E\u3059
+help.quest.summary = jshell\u30C4\u30FC\u30EB\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u53D6\u5F97\u3057\u307E\u3059
 help.quest.args = [<command>|<subject>]
-help.quest =jshell\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059(/help\u306E\u7701\u7565\u5F62)\u3002\n/?\n\t\u30B3\u30DE\u30F3\u30C9\u304A\u3088\u3073\u30D8\u30EB\u30D7\u306E\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n/? <command>\n\t\u6307\u5B9A\u3057\u305F\u30B3\u30DE\u30F3\u30C9\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u30B9\u30E9\u30C3\u30B7\u30E5\u3092\u542B\u3081\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\t\u5FC5\u8981\u306A\u306E\u306F\u30B3\u30DE\u30F3\u30C9\u306E\u6700\u521D\u306E\u6570\u6587\u5B57\u306E\u307F\u3067\u3059 -- \u8907\u6570\u4E00\u81F4\u3059\u308B\u5834\u5408\u306F\n\t\u305D\u308C\u305E\u308C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B:  /help /li\n/? <subject>\n\t\u6307\u5B9A\u3057\u305F\u30D8\u30EB\u30D7\u306E\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4F8B: /? intro
+help.quest =jshell\u30C4\u30FC\u30EB\u306E\u4F7F\u7528\u65B9\u6CD5\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059(/help\u306E\u7701\u7565\u5F62)\u3002\n/?\n\t\u30B3\u30DE\u30F3\u30C9\u304A\u3088\u3073\u30D8\u30EB\u30D7\u306E\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\n/? <command>\n\t\u6307\u5B9A\u3057\u305F\u30B3\u30DE\u30F3\u30C9\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u30B9\u30E9\u30C3\u30B7\u30E5\u3092\u542B\u3081\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\t\u5FC5\u8981\u306A\u306E\u306F\u30B3\u30DE\u30F3\u30C9\u306E\u6700\u521D\u306E\u6570\u6587\u5B57\u306E\u307F\u3067\u3059 -- \u8907\u6570\u4E00\u81F4\u3059\u308B\u5834\u5408\u306F\n\t\u305D\u308C\u305E\u308C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B:  /? /li\n/? <subject>\n\t\u6307\u5B9A\u3057\u305F\u30D8\u30EB\u30D7\u306E\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u4F8B: /? intro
 
 help.bang.summary = \u6700\u5F8C\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u5B9F\u884C\u3057\u307E\u3059 -- /help rerun\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044
 help.bang.args =
 help.bang =\u6700\u5F8C\u306B\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3057\u307E\u3059\u3002
 
-help.id.summary = ID\u307E\u305F\u306FID\u7BC4\u56F2\u3067\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u5B9F\u884C\u3057\u307E\u3059 -- /help rerun\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044
-help.id.args =
-help.id =/<id> <id> <id>\n\n/<id>-<id>\n\nID\u307E\u305F\u306FID\u7BC4\u56F2\u3067\u6307\u5B9A\u3055\u308C\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3057\u307E\u3059\u3002\nID\u7BC4\u56F2\u306F\u3001\u30CF\u30A4\u30D5\u30F3\u3067\u533A\u5207\u3089\u308C\u305F2\u3064\u306EID\u3067\u8868\u73FE\u3055\u308C\u307E\u3059(\u4F8B: 3-17)\n\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30A8\u30E9\u30FC\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: s3-s9\u307E\u305F\u306Fe1-e4)\n\u4EFB\u610F\u306E\u6570\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: /3-7 s4 14-16 e2)
+help.slashID.summary = ID\u307E\u305F\u306FID\u7BC4\u56F2\u3067\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u5B9F\u884C\u3057\u307E\u3059 -- /help rerun\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044
+help.slashID.args =
+help.slashID =/<id> <id> <id>\n\n/<id>-<id>\n\nID\u307E\u305F\u306FID\u7BC4\u56F2\u3067\u6307\u5B9A\u3055\u308C\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3057\u307E\u3059\u3002\nID\u7BC4\u56F2\u306F\u3001\u30CF\u30A4\u30D5\u30F3\u3067\u533A\u5207\u3089\u308C\u305F2\u3064\u306EID\u3067\u8868\u73FE\u3055\u308C\u307E\u3059(\u4F8B: 3-17)\n\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30A8\u30E9\u30FC\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: s3-s9\u307E\u305F\u306Fe1-e4)\n\u4EFB\u610F\u306E\u6570\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: /3-7 s4 14-16 e2)\n'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
 help.previous.summary = n\u56DE\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u5B9F\u884C\u3057\u307E\u3059 -- /help rerun\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044
 help.previous.args =
 help.previous =n\u56DE\u524D\u306B\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3057\u307E\u3059\u3002
 
 help.intro.summary = jshell\u30C4\u30FC\u30EB\u306E\u6982\u8981
-help.intro =jshell\u30C4\u30FC\u30EB\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001Java\u30B3\u30FC\u30C9\u3092\u5B9F\u884C\u3057\u3066\u5373\u5EA7\u306B\u7D50\u679C\u3092\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\nint x = 8\u306A\u3069\u306EJava\u5B9A\u7FA9(\u5909\u6570\u3001\u30E1\u30BD\u30C3\u30C9\u3001\u30AF\u30E9\u30B9\u306A\u3069)\u3001\nx + x\u306A\u3069\u306EJava\u5F0F\u307E\u305F\u306FJava\u6587\u3092\u5165\u529B\u3057\u305F\u308A\u3001\n\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u305F\u308A\u3067\u304D\u307E\u3059\u3002\n\u3053\u308C\u3089\u306EJava\u30B3\u30FC\u30C9\u306E\u5C0F\u3055\u306A\u30C1\u30E3\u30F3\u30AF\u3092\u300C\u30B9\u30CB\u30DA\u30C3\u30C8\u300D\u3068\u547C\u3073\u307E\u3059\u3002\n\n\u307E\u305F\u3001/list\u306A\u3069\u306E\u5B9F\u884C\u3059\u308B\u5185\u5BB9\u3092\u7406\u89E3\u304A\u3088\u3073\u5236\u5FA1\u3067\u304D\u308Bjshell\u30B3\u30DE\u30F3\u30C9\u3082\n\u3042\u308A\u307E\u3059\n\n\u30B3\u30DE\u30F3\u30C9\u306E\u30EA\u30B9\u30C8\u3092\u53C2\u7167\u3059\u308B\u5834\u5408: /help
+help.intro =jshell\u30C4\u30FC\u30EB\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001Java\u30B3\u30FC\u30C9\u3092\u5B9F\u884C\u3057\u3066\u5373\u5EA7\u306B\u7D50\u679C\u3092\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\nint x = 8\u306A\u3069\u306EJava\u5B9A\u7FA9(\u5909\u6570\u3001\u30E1\u30BD\u30C3\u30C9\u3001\u30AF\u30E9\u30B9\u306A\u3069)\u3001\nx + x\u306A\u3069\u306EJava\u5F0F\u307E\u305F\u306FJava\u6587\u3092\u5165\u529B\u3057\u305F\u308A\u3001\n\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u305F\u308A\u3067\u304D\u307E\u3059\u3002\n\u3053\u308C\u3089\u306EJava\u30B3\u30FC\u30C9\u306E\u5C0F\u3055\u306A\u30C1\u30E3\u30F3\u30AF\u3092\u300C\u30B9\u30CB\u30DA\u30C3\u30C8\u300D\u3068\u547C\u3073\u307E\u3059\u3002\n\n\u307E\u305F\u3001/list\u306A\u3069\u306E\u5B9F\u884C\u3059\u308B\u5185\u5BB9\u3092\u7406\u89E3\u304A\u3088\u3073\u5236\u5FA1\u3067\u304D\u308Bjshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u3082\n\u3042\u308A\u307E\u3059\n\n\u30B3\u30DE\u30F3\u30C9\u306E\u30EA\u30B9\u30C8\u3092\u53C2\u7167\u3059\u308B\u5834\u5408: /help
 
 help.shortcuts.summary = \u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u88DC\u5B8C\u3001\u60C5\u5831\u30A2\u30AF\u30BB\u30B9\u3001\u304A\u3088\u3073\u81EA\u52D5\u30B3\u30FC\u30C9\u751F\u6210\n\u306E\u30AD\u30FC\u30B9\u30C8\u30ED\u30FC\u30AF\u306E\u8AAC\u660E
-help.shortcuts =\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\n<tab>\n\t\tJava\u8B58\u5225\u5B50\u3001jshell\u30B3\u30DE\u30F3\u30C9\u3001\u5834\u5408\u306B\u3088\u3063\u3066\u306F\n\t\tjshell\u30B3\u30DE\u30F3\u30C9\u5F15\u6570\u306E\u6700\u521D\u306E\u6570\u6587\u5B57\u3092\u5165\u529B\u3057\u305F\u5F8C\u306B\u3001\n\t\t<tab>\u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\u5165\u529B\u304C\u88DC\u5B8C\u3055\u308C\u307E\u3059\u3002\n\t\t\u88DC\u5B8C\u7D50\u679C\u304C\u8907\u6570\u3042\u308B\u5834\u5408\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u88DC\u5B8C\u7D50\u679C\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\t\t\u4F7F\u7528\u53EF\u80FD\u306A\u5834\u5408\u3001\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\nShift-<tab> v\n\t\t\u5B8C\u5168\u306A\u5F0F\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\u6B21\u306B\u96E2\u3057\u3066\n\t\t[v]\u3092\u62BC\u3059\u3068\u3001\u30BF\u30A4\u30D7\u304C\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\u57FA\u3065\u304F\u5909\u6570\u306E\u5BA3\u8A00\u306B\n\t\t\u5F0F\u304C\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\n\nShift-<tab> m\n\t\t\u5B8C\u5168\u306A\u5F0F\u307E\u305F\u306F\u6587\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\n\t\t\u6B21\u306B\u96E2\u3057\u3066[m]\u3092\u62BC\u3059\u3068\u3001\u5F0F\u307E\u305F\u306F\u6587\u304C\u30E1\u30BD\u30C3\u30C9\u5BA3\u8A00\u306B\n\t\t\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\u5F0F\u306E\u5834\u5408\u3001\u623B\u308A\u578B\u306F\u3001\n\t\t\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\u57FA\u3065\u304D\u307E\u3059\u3002\n\nShift-<tab> i\n\t\t\u89E3\u6C7A\u3067\u304D\u306A\u3044\u8B58\u5225\u5B50\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\u6B21\u306B\u96E2\u3057\u3066\n\t\t[i]\u3092\u62BC\u3059\u3068\u3001jshell\u306B\u3088\u3063\u3066\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u30A4\u30F3\u30DD\u30FC\u30C8\u304C\u63D0\u793A\u3055\u308C\u3001\n\t\t\u3053\u308C\u306B\u3088\u3063\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30D1\u30B9\u306E\u5185\u5BB9\u306B\u57FA\u3065\u3044\u3066\u8B58\u5225\u5B50\u304C\u89E3\u6C7A\u3055\u308C\u307E\u3059\u3002
+help.shortcuts =\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\n<tab>\n\t\tJava\u8B58\u5225\u5B50\u3001jshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u3001\u5834\u5408\u306B\u3088\u3063\u3066\u306F\n\t\tjshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u5F15\u6570\u306E\u6700\u521D\u306E\u6570\u6587\u5B57\u3092\u5165\u529B\u3057\u305F\u5F8C\u306B\u3001\n\t\t<tab>\u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\u5165\u529B\u304C\u88DC\u5B8C\u3055\u308C\u307E\u3059\u3002\n\t\t\u88DC\u5B8C\u7D50\u679C\u304C\u8907\u6570\u3042\u308B\u5834\u5408\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u88DC\u5B8C\u7D50\u679C\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\t\t\u9069\u5207\u306A\u3082\u306E\u304C\u3042\u308B\u5834\u5408\u306F\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\nShift-<tab> v\n\t\t\u5B8C\u5168\u306A\u5F0F\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\u6B21\u306B\u96E2\u3057\u3066\n\t\t[v]\u3092\u62BC\u3059\u3068\u3001\u5F0F\u304C\u3001\u305D\u306E\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\u57FA\u3065\u304F\u30BF\u30A4\u30D7\u3092\u6301\u3064\u3001\u5909\u6570\u306E\u5BA3\u8A00\u306B\n\t\t\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\n\nShift-<tab> m\n\t\t\u5B8C\u5168\u306A\u5F0F\u307E\u305F\u306F\u6587\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\n\t\t\u6B21\u306B\u96E2\u3057\u3066[m]\u3092\u62BC\u3059\u3068\u3001\u5F0F\u307E\u305F\u306F\u6587\u304C\u30E1\u30BD\u30C3\u30C9\u5BA3\u8A00\u306B\n\t\t\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\u5F0F\u306E\u5834\u5408\u3001\u623B\u308A\u5024\u306E\u30BF\u30A4\u30D7\u306F\u3001\n\t\t\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\u57FA\u3065\u304D\u307E\u3059\u3002\n\nShift-<tab> i\n\t\t\u89E3\u6C7A\u3067\u304D\u306A\u3044\u8B58\u5225\u5B50\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\u6B21\u306B\u96E2\u3057\u3066\n\t\t[i]\u3092\u62BC\u3059\u3068\u3001jshell\u30C4\u30FC\u30EB\u306B\u3088\u3063\u3066\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u30A4\u30F3\u30DD\u30FC\u30C8\u304C\u63D0\u793A\u3055\u308C\u3001\n\t\t\u3053\u308C\u306B\u3088\u3063\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30D1\u30B9\u306E\u5185\u5BB9\u306B\u57FA\u3065\u3044\u3066\u8B58\u5225\u5B50\u304C\u89E3\u6C7A\u3055\u308C\u307E\u3059\u3002
 
 help.context.summary = /env /reload\u304A\u3088\u3073/reset\u306E\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u8AAC\u660E
-help.context =\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u69CB\u6210\u3057\u307E\u3059\u3002\u3053\u308C\u3089\u306F\u3001jshell\u8D77\u52D5\u6642\u306B\n\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u3001\u307E\u305F\u306F\u30B3\u30DE\u30F3\u30C9/env\u3001/reload\u307E\u305F\u306F/reset\u3067\u518D\u8D77\u52D5\u3059\u308B\n\u3053\u3068\u306B\u3088\u308A\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\t--class-path <class search path of directories and zip/jar files>\n\t\t\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001\n\t\tJAR\u30A2\u30FC\u30AB\u30A4\u30D6\u3001ZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u30EA\u30B9\u30C8\u3002\n\t\t\u30EA\u30B9\u30C8\u306F\u30D1\u30B9\u533A\u5207\u308A\u6587\u5B57\u3067\u533A\u5207\u308A\u307E\u3059\n\t\t(UNIX/Linux/Mac\u3067\u306F\u300C:\u300D\u3001Windows\u3067\u306F\u300C;\u300D)\u3002\n\t--module-path <module path>...\n\t\t\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30EA\u30B9\u30C8\u3002\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\n\t\t\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\u3002\n\t\t\u30EA\u30B9\u30C8\u306F\u30D1\u30B9\u533A\u5207\u308A\u6587\u5B57\u3067\u533A\u5207\u308A\u307E\u3059\n\t\t(UNIX/Linux/Mac\u3067\u306F\u300C:\u300D\u3001Windows\u3067\u306F\u300C;\u300D)\u3002\n\t--add-modules <modulename>[,<modulename>...]\n\t\t\u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3002\n\t\t<modulename>\u306B\u306F\u3001ALL-DEFAULT\u3001ALL-SYSTEM\u3001\n\t\tALL-MODULE-PATH\u3082\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\n\t--add-exports <module>/<package>=<target-module>(,<target-module>)*\n\t\t\u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F\u3001<module>\u3092\u66F4\u65B0\u3057\u3066\n\t\t<package>\u3092<target-module>\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n\t\t<target-module>\u3092ALL-UNNAMED\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u3059\u3079\u3066\u306E\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\n\t\t\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002jshell\u3067\u306F\u3001<target-module>\u3092\u6307\u5B9A\u3057\u306A\u3044\u5834\u5408(\u300C=\u300D\u306A\u3057)\u3001\n\t\tALL-UNNAMED\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\n\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u306F\u3001\u3053\u308C\u3089\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F2\u3064\u306E\u30C0\u30C3\u30B7\u30E5\u304C\u5FC5\u8981\u3067\u3059\u3002\u4F8B: --module-path\njshell\u30B3\u30DE\u30F3\u30C9\u3067\u306F\u3001\u30C0\u30C3\u30B7\u30E5\u306F1\u3064\u3067\u30822\u3064\u3067\u3082\u304B\u307E\u3044\u307E\u305B\u3093\u3002\u4F8B: -module-path\n
+help.context =\u3053\u308C\u3089\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u69CB\u6210\u3057\u307E\u3059\u3002\u3053\u308C\u3089\u306F\u3001jshell\u30C4\u30FC\u30EB\u306E\n\u8D77\u52D5\u6642\u306B\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u3001\u307E\u305F\u306Fjshell\u30C4\u30FC\u30EB\u304C\u30B3\u30DE\u30F3\u30C9/env\u3001/reload\u307E\u305F\u306F\n/reset\u3067\u518D\u8D77\u52D5\u3055\u308C\u308B\u3068\u304D\u306B\u30B3\u30DE\u30F3\u30C9\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\t--class-path <path>\n\t\t<path>\u306F\u3001\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u3001\n\t\tZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\t\tWindows\u306E\u5834\u5408\u306F\u3001\u30BB\u30DF\u30B3\u30ED\u30F3(;)\u3092\u4F7F\u7528\u3057\u3066\u30D1\u30B9\u306E\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n\t\t\u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306F\u3001\u30B3\u30ED\u30F3(:)\u3092\u4F7F\u7528\u3057\u3066\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n\t--module-path <path>...\n\t\t<path>\u306F\u3001\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u3001\n\t\tZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\t\tWindows\u306E\u5834\u5408\u306F\u3001\u30BB\u30DF\u30B3\u30ED\u30F3(;)\u3092\u4F7F\u7528\u3057\u3066\u30D1\u30B9\u306E\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n\t\t\u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306F\u3001\u30B3\u30ED\u30F3(:)\u3092\u4F7F\u7528\u3057\u3066\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n\t--add-modules <modulename>[,<modulename>...]\n\t\t\u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3002\n\t\t<modulename>\u306B\u306FALL-DEFAULT\u3001ALL-SYSTEM\u3001\n\t\tALL-MODULE-PATH\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002\n\t--add-exports <module>/<package>=<target-module>(,<target-module>)*\n\t\t<module>\u3092\u66F4\u65B0\u3057\u3066\u3001\u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F<package>\u3092<target-module>\n\t\t\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n\t\t<target-module>\u3092ALL-UNNAMED\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u3059\u3079\u3066\u306E\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\n\t\t\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3067\u304D\u307E\u3059\u3002jshell\u3067\u306F\u3001<target-module>\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408(\u300C=\u300D\u306A\u3057)\n\t\tALL-UNNAMED\u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n\n\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3055\u308C\u308B\u304B\u4EE5\u524D\u306E/reset\u3001/env\u307E\u305F\u306F/reload\u30B3\u30DE\u30F3\u30C9\u3067\n\u6307\u5B9A\u3055\u308C\u305F\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u8A2D\u5B9A\u3092\u4E0A\u66F8\u304D\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\n\u5165\u529B\u3055\u308C\u306A\u3044\u304B\u304E\u308A\u7DAD\u6301\u3055\u308C\u307E\u3059\u3002\n\n\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u306F\u3001\u3053\u308C\u3089\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F2\u3064\u306E\u30C0\u30C3\u30B7\u30E5\u304C\u5FC5\u8981\u3067\u3059\u3002\u4F8B: \
+--module-path\njshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u3067\u306F\u3001\u3053\u308C\u3089\u306B\u306F1\u3064\u307E\u305F\u306F2\u3064\u306E\u30C0\u30C3\u30B7\u30E5\u304C\u5FC5\u8981\u3067\u3059\u3002\u4F8B: -module-path
+
+help.id.summary = \u30B9\u30CB\u30DA\u30C3\u30C8ID\u306E\u5BA3\u8A00\u3068\u305D\u308C\u3089\u306E\u4F7F\u7528\u65B9\u6CD5
+help.id =\u5165\u529B\u3057\u305F\u30B3\u30FC\u30C9\u306E\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306B\u56FA\u6709\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u304C\u3042\u308A\u307E\u3059\u3002\n\u540C\u3058\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u5EA6\u5165\u529B\u3057\u305F\u5834\u5408\u3067\u3082\u3001\u305D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u65B0\u3057\u3044ID\u3092\u6301\u3061\u307E\u3059\u3002\n\u901A\u5E38\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5834\u5408\u3001ID\u306F\u5897\u52A0\u3059\u308B\u6570\u5024\u3067\u3059\u3002\u30A8\u30E9\u30FC\u3067\u5931\u6557\u3059\u308B\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\n\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306F'e'\u3067\u59CB\u307E\u308A\u307E\u3059\u3002\u8D77\u52D5\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306EID\u306F's'\u3067\u59CB\u307E\u308A\u307E\u3059\u3002\n\n\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306F\u3001\u30B3\u30DE\u30F3\u30C9\u5185\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u53C2\u7167\u3059\u308B1\u3064\u306E\u65B9\u6CD5\u3067\u3059\u3002\u305F\u3068\u3048\u3070\u3001\n\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u306FID '14'\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u3002\n\n\t/drop 14\n\n1\u3064\u307E\u305F\u306F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306EID\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001'/list'\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\u5931\u6557\u3001\u8D77\u52D5\u3001\u4E0A\u66F8\u304D\u6E08\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306EID\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001\n'/list -all'\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\n\u958B\u59CBID\u3068\u7D42\u4E86ID\u3092\u30CF\u30A4\u30D5\u30F3\u3067\u533A\u5207\u3063\u305FID\u306E\u7BC4\u56F2\u3082\u53C2\u7167\u3067\u304D\u307E\u3059\u3002\n\u305F\u3068\u3048\u3070\u3001'1-4'\u306F'1 2 3 4'\u3068\u540C\u3058\u3067\u3059\u3002\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u53C2\u7167\u3059\u308B\u3059\u3079\u3066\u306E\u30B3\u30DE\u30F3\u30C9\u306F\u3001\nID\u306E\u30EA\u30B9\u30C8\u3001ID\u7BC4\u56F2\u304A\u3088\u3073\u30B9\u30CB\u30DA\u30C3\u30C8\u540D\u3092\u5F15\u6570\u3068\u3057\u3066\u53D7\u3051\u53D6\u308A\u307E\u3059\u3002\n\u3053\u308C\u3089\u306E\u30B3\u30DE\u30F3\u30C9\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059: /list\u3001/edit\u3001/drop\u3001/save\u3001/vars\u3001/methods\u3001\n/types\u3001/<id>\u3002\u4F8B\u3092\u3044\u304F\u3064\u304B\u793A\u3057\u307E\u3059\u3002\n\n\t/edit 7-23\n\n\t/save s1-s4 3-8 foo 12 myfile\n\n\t/9-12 33\n\n\u305D\u308C\u305E\u308C'/help /edit'\u3001'/help /save'\u3001'/help rerun'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+
 help.rerun.summary = \u524D\u306B\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3059\u308B\u65B9\u6CD5\u306E\u8AAC\u660E
-help.rerun =\u524D\u306B\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3059\u308B\u65B9\u6CD5\u306F4\u3064\u3042\u308A\u307E\u3059\u3002\n\u6700\u5F8C\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001/!\u3092\u4F7F\u7528\u3057\u3066\u518D\u8A55\u4FA1\u3067\u304D\u307E\u3059\nn\u56DE\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001\u30B9\u30E9\u30C3\u30B7\u30E5\u3068\u30DE\u30A4\u30CA\u30B9\u304A\u3088\u3073n\u306E\u6570\u5B57\u3067\u518D\u8A55\u4FA1\u3067\u304D\u307E\u3059(\u4F8B: /-4)\n\u6B21\u306B\u4F8B\u3092\u793A\u3057\u307E\u3059\u3002\n\n\tjshell> 2 + 2\n\t$1 ==> 4\n\n\tjshell> /!\n\t2 + 2\n\t$2 ==> 4\n\n\tjshell> int z\n\tz ==> 0\n\n\tjshell> /-1\n\tint z;\n\tz ==> 0\n\n\tjshell> /-4\n\t2 + 2\n\t$5 ==> 4\n\n\u518D\u8A55\u4FA1\u3059\u308B\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8ID\u307E\u305F\u306FID\u7BC4\u56F2\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\nID\u7BC4\u56F2\u306F\u3001\u30CF\u30A4\u30D5\u30F3\u3067\u533A\u5207\u3089\u308C\u305F2\u3064\u306EID\u3067\u8868\u73FE\u3055\u308C\u307E\u3059(\u4F8B: 3-17)\n\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30A8\u30E9\u30FC\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: s3-s9\u307E\u305F\u306Fe1-e4)\n\u4EFB\u610F\u306E\u6570\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: /3-7 s4 14-16 e2)\n\n\u307E\u305F\u3001[Ctrl]-[R]\u3092\u62BC\u3057\u3066\u304B\u3089\u691C\u7D22\u6587\u5B57\u5217\u3092\u5165\u529B\u3059\u308B\u3068\u3001\u5C65\u6B74\u3092\u3055\u304B\u306E\u307C\u3063\u3066\u691C\u7D22\u3067\u304D\u307E\u3059\u3002
+help.rerun =\u524D\u306B\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3059\u308B\u65B9\u6CD5\u306F4\u3064\u3042\u308A\u307E\u3059\u3002\n\u6700\u5F8C\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001/!\u3092\u4F7F\u7528\u3057\u3066\u518D\u8A55\u4FA1\u3067\u304D\u307E\u3059\nn\u56DE\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001\u30B9\u30E9\u30C3\u30B7\u30E5\u3068\u30DE\u30A4\u30CA\u30B9\u304A\u3088\u3073n\u306E\u6570\u5B57\u3067\u518D\u8A55\u4FA1\u3067\u304D\u307E\u3059(\u4F8B: /-4)\n\u6B21\u306B\u4F8B\u3092\u793A\u3057\u307E\u3059\u3002\n\n\tjshell> 2 + 2\n\t$1 ==> 4\n\n\tjshell> /!\n\t2 + 2\n\t$2 ==> 4\n\n\tjshell> int z\n\tz ==> 0\n\n\tjshell> /-1\n\tint z;\n\tz ==> 0\n\n\tjshell> /-4\n\t2 + 2\n\t$5 ==> 4\n\n\u518D\u8A55\u4FA1\u3059\u308B\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8ID\u307E\u305F\u306FID\u7BC4\u56F2\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\nID\u7BC4\u56F2\u306F\u3001\u30CF\u30A4\u30D5\u30F3\u3067\u533A\u5207\u3089\u308C\u305F2\u3064\u306EID\u3067\u8868\u73FE\u3055\u308C\u307E\u3059(\u4F8B: 3-17)\n\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30A8\u30E9\u30FC\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: s3-s9\u307E\u305F\u306Fe1-e4)\n\u4EFB\u610F\u306E\u6570\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: /3-7 s4 14-16 e2)\n'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\n\u307E\u305F\u3001[Ctrl]-[R]\u3092\u62BC\u3057\u3066\u304B\u3089\u691C\u7D22\u6587\u5B57\u5217\u3092\u5165\u529B\u3059\u308B\u3068\u3001\u5C65\u6B74\u3092\u3055\u304B\u306E\u307C\u3063\u3066\u691C\u7D22\u3067\u304D\u307E\u3059\u3002
 
 help.set._retain = '-retain'\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3088\u308A\u3001\u5C06\u6765\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3067\u4F7F\u7528\u3059\u308B\u305F\u3081\u306B\u8A2D\u5B9A\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002\n-retain\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001/set\u306E\u6B21\u306E\u5F62\u5F0F\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059:\n\n\t/set editor -retain\n\t/set start -retain\n\t/set feedback -retain\n\t/set mode -retain\n\n\u8A73\u7D30\u306F\u3001\u3053\u308C\u3089\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044 -- \u4F8B: /help /set editor
 
-help.set.format.summary = \u30B9\u30CB\u30DA\u30C3\u30C8\u30FB\u30A4\u30D9\u30F3\u30C8\u3092\u30EC\u30DD\u30FC\u30C8\u3059\u308B\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002
+help.set.format.summary = \u30B9\u30CB\u30DA\u30C3\u30C8\u30FB\u30A4\u30D9\u30F3\u30C8\u3092\u30EC\u30DD\u30FC\u30C8\u3059\u308B\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059
 
 help.set.format = \u30B9\u30CB\u30DA\u30C3\u30C8\u30FB\u30A4\u30D9\u30F3\u30C8\u3092\u30EC\u30DD\u30FC\u30C8\u3059\u308B\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059:\n\n\t/set format <mode> <field> "<format>" <selector>...\n\n\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059:\n\n\t/set format [<mode> [<field>]]\n\n<mode>\u306F\u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u306E\u540D\u524D\u3067\u3059 -- '/help /set mode'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n<field>\u306F\u5B9A\u7FA9\u3059\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u56FA\u6709\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u306E\u540D\u524D\u3067\u3059\u3002\n<format>\u306F\u5F15\u7528\u7B26\u306B\u56F2\u307E\u308C\u305F\u6587\u5B57\u5217\u3067\u3001\u6B21\u306E\u5834\u5408\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u5024\u3067\u3059: \n\u30BB\u30EC\u30AF\u30BF\u304C\u4E00\u81F4\u3059\u308B(\u307E\u305F\u306F\u30BB\u30EC\u30AF\u30BF\u304C\u306A\u3044)\u3002\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u304C\u4F7F\u7528\u3055\u308C\u308B\u5834\u5408\u3001\n\u4E2D\u30AB\u30C3\u30B3\u3067\u56F2\u307E\u308C\u3066\u3044\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u304C\u305D\u306E\u3068\u304D\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u5024\u3067\u7F6E\u63DB\u3055\u308C\u307E\u3059\n\u3053\u308C\u3089\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306F\u3001\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u3067\u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3082\u3001\n\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u56FA\u6709\u306E\u3053\u308C\u3089\u306E\u4E8B\u524D\u5B9A\u7FA9\u6E08\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u3044\u305A\u308C\u304B\u3067\u3042\u308B\u5834\u5408\u3082\u3042\u308A\u307E\u3059:\n\t{name}       == \u540D\u524D\u3001\u4F8B: \u5909\u6570\u540D\u3001 ...\n\t{type}       == \u30BF\u30A4\u30D7\u540D\u3002\u5909\u6570\u307E\u305F\u306F\u5F0F\u306E\u30BF\u30A4\u30D7\u3001\n\t\t\t\u30E1\u30BD\u30C3\u30C9\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FB\u30BF\u30A4\u30D7\n\t{value}      == \u5F0F\u307E\u305F\u306F\u5909\u6570\u306E\u521D\u671F\u5316\u306E\u7D50\u679C\u5024\n\t{unresolved} == \u672A\u89E3\u6C7A\u306E\u53C2\u7167\u306E\u30EA\u30B9\u30C8\n\t{errors}     == \u30EA\u30AB\u30D0\u30EA\u53EF\u80FD\u306A\u30A8\u30E9\u30FC\u306E\u30EA\u30B9\u30C8(\u51E6\u7406\u6642-\n\t\t\t"display"\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u307F)\n\t{err}        == \u672A\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30FB\u30A8\u30E9\u30FC\u884C(\u51E6\u7406\u6642-\n\t\t\t"errorline"\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u307F)\n\u6B21\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306F\u30C4\u30FC\u30EB\u306B\u3088\u3063\u3066\u30A2\u30AF\u30BB\u30B9\u3055\u308C\u3001\u8868\u793A\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u6C7A\u5B9A\u3057\u307E\u3059:\n\t{display}    == \u30B9\u30CB\u30DA\u30C3\u30C8\u30FB\u30A4\u30D9\u30F3\u30C8\u306B\u5BFE\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30E1\u30C3\u30BB\u30FC\u30B8\n\t{errorline}  == \u300Cerrors\u300D\u30D5\u30A3\u30FC\u30EB\u30C9\u5185\u306E\u30A8\u30E9\u30FC\u884C\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\n\t{pre}        == \u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u63A5\u982D\u8F9E(\u30B3\u30DE\u30F3\u30C9\u30FB\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u958B\u59CB\u3059\u308B)\n\t{post}       == \u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u63A5\u5C3E\u8F9E(\u30B3\u30DE\u30F3\u30C9\u30FB\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u7D42\u4E86\u3059\u308B)\n\t{errorpre}   == \u30A8\u30E9\u30FC\u63A5\u982D\u8F9E(\u30A8\u30E9\u30FC\u30FB\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u958B\u59CB\u3059\u308B)\n\t{errorpost}  == \
-\u30A8\u30E9\u30FC\u63A5\u5C3E\u8F9E(\u30A8\u30E9\u30FC\u30FB\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u7D42\u4E86\u3059\u308B)\n\u3053\u308C\u3089\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u3059(\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059)\u3002\n<selector>\u306F\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u304C\u9069\u7528\u3055\u308C\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u69CB\u9020\u306F\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306E\u30CF\u30A4\u30D5\u30F3\u533A\u5207\u308A\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306F\u30011\u3064\u306E\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306E\u5024\u306E\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u306F\u5404\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u304C\u4E00\u81F4\u3059\u308C\u3070\u4E00\u81F4\u3068\u306A\u308A\u307E\u3059\u3002\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306F\n\u3044\u305A\u308C\u304B\u306E\u5024\u304C\u4E00\u81F4\u3059\u308C\u3070\u4E00\u81F4\u3068\u306A\u308A\u307E\u3059\u3002\n\n\u30B1\u30FC\u30B9\u30FB\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u7A2E\u985E\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\timport     -- \u30A4\u30F3\u30DD\u30FC\u30C8\u5BA3\u8A00\n\tclass      -- \u30AF\u30E9\u30B9\u5BA3\u8A00\n\tinterface  -- \u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u5BA3\u8A00\n\tenum       -- \u5217\u6319\u578B\u306E\u5BA3\u8A00\n\tannotation -- \u6CE8\u91C8\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u5BA3\u8A00\n\tmethod     -- \u30E1\u30BD\u30C3\u30C9\u5BA3\u8A00 -- \u6CE8\u610F: {type}==parameter-types\n\tvardecl    -- \u521D\u671F\u5316\u3057\u306A\u3044\u5909\u6570\u5BA3\u8A00\n\tvarinit    -- \u521D\u671F\u5316\u3059\u308B\u5909\u6570\u5BA3\u8A00\n\texpression -- \u5F0F -- \u6CE8\u610F: {name}==scratch-variable-name\n\tvarvalue   -- \u5909\u6570\u5024\u5F0F\n\tassignment -- \u5909\u6570\u3092\u5272\u308A\u5F53\u3066\u307E\u3059\n\tstatement  -- \u6587\n\u30A2\u30AF\u30B7\u30E7\u30F3\u30FB\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u306B\u767A\u751F\u3057\u305F\u5185\u5BB9\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tadded     -- \u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F\n\tmodified  -- \u65E2\u5B58\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\n\treplaced  -- \u65E2\u5B58\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u65B0\u898F\u30B9\u30CB\u30DA\u30C3\u30C8\u3067\u7F6E\u63DB\u3055\u308C\u307E\u3057\u305F\n\toverwrote -- \u65E2\u5B58\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u307E\u3057\u305F\n\tdropped   -- \u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F\n\tused      -- \u4F7F\u7528\u3067\u304D\u306A\u3044\u3068\u304D\u306B\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u4F7F\u7528\u3055\u308C\u307E\u3057\u305F\n\u767A\u751F\u6642\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u3053\u308C\u304C\u76F4\u63A5\u307E\u305F\u306F\u9593\u63A5\u30A2\u30AF\u30B7\u30E7\u30F3\u3067\u3042\u308B\u304B\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tprimary -- \u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\n\tupdate  -- \u4F9D\u5B58\u30B9\u30CB\u30DA\u30C3\u30C8\u3078\u306E\u66F4\u65B0\n\u89E3\u6C7A\u72B6\u614B\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u89E3\u6C7A/\u5B9A\u7FA9\u306E\u72B6\u614B\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tok         -- \
-\u6B63\u3057\u304F\u89E3\u6C7A\u3055\u308C\u307E\u3057\u305F\n\tdefined    -- \u5FA9\u5143\u53EF\u80FD\u3067\u672A\u89E3\u6C7A\u306E\u53C2\u7167\u306B\u3082\u304B\u304B\u308F\u3089\u305A\u5B9A\u7FA9\u3055\u308C\u307E\u3057\u305F\n\tnotdefined -- \u5FA9\u5143\u53EF\u80FD\u3067\u672A\u89E3\u6C7A\u306E\u53C2\u7167\u306E\u305F\u3081\u5B9A\u7FA9\u3055\u308C\u307E\u305B\u3093\n\u672A\u89E3\u6C7A\u6570\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u672A\u89E3\u6C7A\u306E\u53C2\u7167\u306E\u6570\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tunresolved0 -- \u672A\u89E3\u6C7A\u306E\u540D\u524D\u306F\u3042\u308A\u307E\u305B\u3093\n\tunresolved1 -- 1\u3064\u306E\u540D\u524D\u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n\tunresolved2 -- 2\u3064\u4EE5\u4E0A\u306E\u540D\u524D\u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n\u30A8\u30E9\u30FC\u6570\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30A8\u30E9\u30FC\u306E\u6570\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\terror0 -- \u30A8\u30E9\u30FC\u306A\u3057\n\terror1 -- 1\u3064\u306E\u30A8\u30E9\u30FC\n\terror2 -- 2\u3064\u4EE5\u4E0A\u306E\u30A8\u30E9\u30FC\n\n\u4F8B:\n\t/set format mymode action '\u6B21\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F:' added-primary\n\t/set format mymode action '\u6B21\u3092\u66F4\u65B0/\u7F6E\u63DB\u3057\u307E\u3057\u305F:' replaced-update\n\t/set format mymode display '{pre}{action} \u30AF\u30E9\u30B9 {name}{post}' class-ok\n\t/set format mymode display '{pre}{action} \u5909\u6570 {name}\u3001null\u306B\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u307E\u3057\u305F{post}' replaced-vardecl,varinit-ok-update\n\n\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u3059\u308B\u5F8C\u7D9A\u306E\u30BB\u30EC\u30AF\u30BF\u306B\u3088\u308A\u3001\u4EE5\u524D\u306B\u4F7F\u7528\u3055\u308C\u305F\u30BB\u30EC\u30AF\u30C8\u306E\u4E00\u90E8\u307E\u305F\u306F\u3059\u3079\u3066\u304C\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 -- \u6700\u5F8C\u306E\u30BB\u30EC\u30AF\u30BF\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\n\n<format>\u306E\u306A\u3044\u5F62\u5F0F\u306F\u3001\u73FE\u5728\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n<mode>\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u305D\u306E\u30E2\u30FC\u30C9\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u306E\u307F\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n<mode>\u3068<field>\u306E\u4E21\u65B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\n\u305D\u306E\u30E2\u30FC\u30C9\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u306E\u307F\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B:\n\t/set format mymode\n\u30E2\u30FC\u30C9mymode\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\n
+\u30A8\u30E9\u30FC\u63A5\u5C3E\u8F9E(\u30A8\u30E9\u30FC\u30FB\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u7D42\u4E86\u3059\u308B)\n\u3053\u308C\u3089\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u306F\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u8A2D\u5B9A\u304C\u3042\u308A\u307E\u3059(\u4E0A\u66F8\u304D\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059)\u3002\n<selector>\u306F\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u304C\u9069\u7528\u3055\u308C\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u69CB\u9020\u306F\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306E\u30CF\u30A4\u30D5\u30F3\u533A\u5207\u308A\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306F\u30011\u3064\u306E\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306E\u5024\u306E\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u306F\u5404\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u304C\u4E00\u81F4\u3059\u308C\u3070\u4E00\u81F4\u3068\u306A\u308A\u307E\u3059\u3002\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306F\n\u3044\u305A\u308C\u304B\u306E\u5024\u304C\u4E00\u81F4\u3059\u308C\u3070\u4E00\u81F4\u3068\u306A\u308A\u307E\u3059\u3002\n\n\u30B1\u30FC\u30B9\u30FB\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u7A2E\u985E\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\timport     -- \u30A4\u30F3\u30DD\u30FC\u30C8\u5BA3\u8A00\n\tclass      -- \u30AF\u30E9\u30B9\u5BA3\u8A00\n\tinterface  -- \u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u5BA3\u8A00\n\tenum       -- \u5217\u6319\u578B\u306E\u5BA3\u8A00\n\tannotation -- \u6CE8\u91C8\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u5BA3\u8A00\n\tmethod     -- \u30E1\u30BD\u30C3\u30C9\u5BA3\u8A00 -- \u6CE8\u610F: {type}==parameter-types\n\tvardecl    -- \u521D\u671F\u5316\u3057\u306A\u3044\u5909\u6570\u5BA3\u8A00\n\tvarinit    -- \u521D\u671F\u5316\u3059\u308B\u5909\u6570\u5BA3\u8A00\n\texpression -- \u5F0F -- \u6CE8\u610F: {name}==scratch-variable-name\n\tvarvalue   -- \u5909\u6570\u5024\u5F0F\n\tassignment -- \u5909\u6570\u3092\u5272\u308A\u5F53\u3066\u307E\u3059\n\tstatement  -- \u6587\n\u30A2\u30AF\u30B7\u30E7\u30F3\u30FB\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u306B\u767A\u751F\u3057\u305F\u5185\u5BB9\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tadded     -- \u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F\n\tmodified  -- \u65E2\u5B58\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\n\treplaced  -- \u65E2\u5B58\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u65B0\u898F\u30B9\u30CB\u30DA\u30C3\u30C8\u3067\u7F6E\u63DB\u3055\u308C\u307E\u3057\u305F\n\toverwrote -- \u65E2\u5B58\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u4E0A\u66F8\u304D\u3055\u308C\u307E\u3057\u305F\n\tdropped   -- \u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u524A\u9664\u3055\u308C\u307E\u3057\u305F\n\tused      -- \u4F7F\u7528\u3067\u304D\u306A\u3044\u3068\u304D\u306B\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u4F7F\u7528\u3055\u308C\u307E\u3057\u305F\n\u767A\u751F\u6642\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u3053\u308C\u304C\u76F4\u63A5\u307E\u305F\u306F\u9593\u63A5\u30A2\u30AF\u30B7\u30E7\u30F3\u3067\u3042\u308B\u304B\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tprimary -- \u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\n\tupdate  -- \u4F9D\u5B58\u30B9\u30CB\u30DA\u30C3\u30C8\u3078\u306E\u66F4\u65B0\n\u89E3\u6C7A\u72B6\u614B\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u89E3\u6C7A/\u5B9A\u7FA9\u306E\u72B6\u614B\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tok         -- \u6B63\u3057\u304F\u89E3\u6C7A\u3055\u308C\u307E\u3057\u305F\n\tdefined    -- \
+\u5FA9\u5143\u53EF\u80FD\u3067\u672A\u89E3\u6C7A\u306E\u53C2\u7167\u306B\u3082\u304B\u304B\u308F\u3089\u305A\u5B9A\u7FA9\u3055\u308C\u307E\u3057\u305F\n\tnotdefined -- \u5FA9\u5143\u53EF\u80FD\u3067\u672A\u89E3\u6C7A\u306E\u53C2\u7167\u306E\u305F\u3081\u5B9A\u7FA9\u3055\u308C\u307E\u305B\u3093\n\u672A\u89E3\u6C7A\u6570\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u672A\u89E3\u6C7A\u306E\u53C2\u7167\u306E\u6570\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tunresolved0 -- \u672A\u89E3\u6C7A\u306E\u540D\u524D\u306F\u3042\u308A\u307E\u305B\u3093\n\tunresolved1 -- 1\u3064\u306E\u540D\u524D\u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n\tunresolved2 -- 2\u3064\u4EE5\u4E0A\u306E\u540D\u524D\u304C\u89E3\u6C7A\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n\u30A8\u30E9\u30FC\u6570\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30A8\u30E9\u30FC\u306E\u6570\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\terror0 -- \u30A8\u30E9\u30FC\u306A\u3057\n\terror1 -- 1\u3064\u306E\u30A8\u30E9\u30FC\n\terror2 -- 2\u3064\u4EE5\u4E0A\u306E\u30A8\u30E9\u30FC\n\n\u4F8B:\n\t/set format mymode action '\u6B21\u3092\u4F5C\u6210\u3057\u307E\u3057\u305F:' added-primary\n\t/set format mymode action '\u6B21\u3092\u66F4\u65B0/\u7F6E\u63DB\u3057\u307E\u3057\u305F:' replaced-update\n\t/set format mymode display '{pre}{action} \u30AF\u30E9\u30B9 {name}{post}' class-ok\n\t/set format mymode display '{pre}{action} \u5909\u6570 {name}\u3001null\u306B\u30EA\u30BB\u30C3\u30C8\u3055\u308C\u307E\u3057\u305F{post}' replaced-vardecl,varinit-ok-update\n\n\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u3059\u308B\u5F8C\u7D9A\u306E\u30BB\u30EC\u30AF\u30BF\u306B\u3088\u308A\u3001\u4EE5\u524D\u306B\u4F7F\u7528\u3055\u308C\u305F\u30BB\u30EC\u30AF\u30C8\u306E\u4E00\u90E8\u307E\u305F\u306F\u3059\u3079\u3066\u304C\u4E0A\u66F8\u304D\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 -- \u6700\u5F8C\u306E\u30BB\u30EC\u30AF\u30BF\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\n\n<format>\u306E\u306A\u3044\u5F62\u5F0F\u306F\u3001\u73FE\u5728\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n<mode>\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u305D\u306E\u30E2\u30FC\u30C9\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u306E\u307F\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n<mode>\u3068<field>\u306E\u4E21\u65B9\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\n\u305D\u306E\u30E2\u30FC\u30C9\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u306E\u307F\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4F8B:\n\t/set format mymode\n\u30E2\u30FC\u30C9mymode\u306E\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\n
 
-help.set.truncation.summary = \u8868\u793A\u3055\u308C\u308B\u5024\u306E\u6700\u5927\u9577\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002
+help.set.truncation.summary = \u8868\u793A\u3055\u308C\u308B\u5024\u306E\u6700\u5927\u9577\u3092\u8A2D\u5B9A\u3057\u307E\u3059
 
 help.set.truncation = \u8868\u793A\u3055\u308C\u308B\u5024\u306E\u6700\u5927\u9577\u3092\u8A2D\u5B9A\u3057\u307E\u3059:\n\n\t/set truncation <mode> <length> <selector>...\n\n\u73FE\u5728\u306E\u5207\u6368\u3066\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059:\n\n\t/set truncation [<mode>]\n\n<mode>\u306F\u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u306E\u540D\u524D\u3067\u3059 -- '/help /set mode'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n<length>\u306F\u6700\u5927\u9577\u3092\u8868\u3059\u7B26\u53F7\u306A\u3057\u6574\u6570\u3067\u3059\u3002\n<selector>\u306F\u3001\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306B\u3088\u3063\u3066\u5207\u6368\u3066\u9577\u306E\u5024\u3092\u5FAE\u8ABF\u6574\u3059\u308B\u5834\u5408\u306B\u306E\u307F\n\u5FC5\u8981\u3067\u3059\u3002<selector>\u306F\u3001\u5207\u6368\u3066\u304C\u9069\u7528\u3055\u308C\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u69CB\u9020\u306F\u3001\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306E\u30CF\u30A4\u30D5\u30F3\u533A\u5207\u308A\u306E\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306F\u30011\u3064\u306E\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306E\u5024\u306E\u30AB\u30F3\u30DE\u533A\u5207\u308A\u306E\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\u30BB\u30EC\u30AF\u30BF\u306F\u5404\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u304C\u4E00\u81F4\u3059\u308C\u3070\u4E00\u81F4\u3068\u306A\u308A\u307E\u3059\u3002\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u30EA\u30B9\u30C8\u306F\n\u3044\u305A\u308C\u304B\u306E\u5024\u304C\u4E00\u81F4\u3059\u308C\u3070\u4E00\u81F4\u3068\u306A\u308A\u307E\u3059\u3002\n\n\u6B21\u306B\u793A\u3059\u306E\u306F\u3001\u5207\u6368\u3066\u306B\u95A2\u9023\u3059\u308B\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u3067\u3059\u3002\n\n\u30B1\u30FC\u30B9\u30FB\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u7A2E\u985E\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tvardecl    -- \u521D\u671F\u5316\u3057\u306A\u3044\u5909\u6570\u5BA3\u8A00\n\tvarinit    -- \u521D\u671F\u5316\u3059\u308B\u5909\u6570\u5BA3\u8A00\n\texpression -- \u5F0F -- \u6CE8\u610F: {name}==scratch-variable-name\n\tvarvalue   -- \u5909\u6570\u5024\u5F0F\n\tassignment -- \u5909\u6570\u3092\u5272\u308A\u5F53\u3066\u307E\u3059\n\u30A2\u30AF\u30B7\u30E7\u30F3\u30FB\u30BB\u30EC\u30AF\u30BF\u7A2E\u985E\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u306B\u767A\u751F\u3057\u305F\u5185\u5BB9\u3092\u793A\u3057\u307E\u3059\u3002\u5024\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\tadded     -- \u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F\n\tmodified  -- \u65E2\u5B58\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\n\treplaced  -- \u65E2\u5B58\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\u65B0\u898F\u30B9\u30CB\u30DA\u30C3\u30C8\u3067\u7F6E\u63DB\u3055\u308C\u307E\u3057\u305F\n\u4F8B:\n\t/set trunc mymode 80\n\t/set truncation mymode 45 expression\n\t/set truncation mymode 0 vardecl-modified,replaced\n\n\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u3059\u308B\u5F8C\u7D9A\u306E\u30BB\u30EC\u30AF\u30BF\u306B\u3088\u308A\u3001\u4EE5\u524D\u306B\u4F7F\u7528\u3055\u308C\u305F\u30BB\u30EC\u30AF\u30BF\u306E\u4E00\u90E8\u307E\u305F\u306F\u3059\u3079\u3066\u304C\u4E0A\u66F8\u304D\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 -- \u6700\u5F8C\u306E\u30BB\u30EC\u30AF\u30BF\u304C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\n\n<length>\u306E\u306A\u3044\u5F62\u5F0F\u306F\u3001\u5207\u6368\u3066\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n<mode>\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u305D\u306E\u30E2\u30FC\u30C9\u306E\u5207\u6368\u3066\u8A2D\u5B9A\u306E\u307F\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\u4F8B:\n\t/set truncation \
 mymode\n\u30E2\u30FC\u30C9mymode\u306E\u5207\u6368\u3066\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\n
 
-help.set.feedback.summary = \u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306B\u5BFE\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u793A\u3059\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002
+help.set.feedback.summary = \u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306B\u5BFE\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u793A\u3059\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3057\u307E\u3059
 
 help.set.feedback = \u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306B\u5BFE\u3057\u3066\u8868\u793A\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3092\u793A\u3059\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3057\u307E\u3059:\n\n\t/set feedback [-retain] <mode>\n\n\u5C06\u6765\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u305F\u3081\u306B\u73FE\u5728\u306E\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u4FDD\u6301\u3057\u307E\u3059:\n\n\t/set feedback -retain\n\n\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u8868\u793A\u3057\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u30E2\u30FC\u30C9\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059:\n\n\t/set feedback\n\n<mode>\u306F\u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u306E\u540D\u524D\u3067\u3059\u3002\n\u4E00\u610F\u306B\u3059\u308B\u305F\u3081\u306B\u5FC5\u8981\u306A\u6587\u5B57\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\n\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30E2\u30FC\u30C9\u306F\u8FFD\u52A0\u3067\u304D\u307E\u3059\u3002'/help /set mode'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n\n-retain\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u8A2D\u5B9A\u306Fjshell\u30C4\u30FC\u30EB\u306E\u3053\u306E\u5B9F\u884C\u3068\u5C06\u6765\u306E\n\u5B9F\u884C\u3067\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n\n<mode>\u307E\u305F\u306F-retain\u306E\u306A\u3044\u5F62\u5F0F\u306F\u3001\u73FE\u5728\u306E\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u304A\u3088\u3073\u4F7F\u7528\u53EF\u80FD\u306A\u30E2\u30FC\u30C9\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n
 
-help.set.mode.summary = \u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u65E2\u5B58\u306E\u30E2\u30FC\u30C9\u304B\u3089\u30B3\u30D4\u30FC\u3057\u307E\u3059\u3002
+help.set.mode.summary = \u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u65E2\u5B58\u306E\u30E2\u30FC\u30C9\u304B\u3089\u30B3\u30D4\u30FC\u3057\u307E\u3059
 
 help.set.mode = \u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u4F5C\u6210\u3057\u307E\u3059\u3002\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u65E2\u5B58\u306E\u30E2\u30FC\u30C9\u304B\u3089\u30B3\u30D4\u30FC\u3057\u307E\u3059:\n\n\t/set mode <new-mode> [<old-mode>] (-command|-quiet)\n\n\u5C06\u6765\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u305F\u3081\u306B\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u4FDD\u6301\u3057\u307E\u3059:\n\n\t/set mode -retain <mode>\n\n\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u524A\u9664\u3057\u307E\u3059:\n\n\t/set mode -delete [-retain] <mode>\n\n\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059:\n\n\t/set mode [<mode>]\n\n<new-mode>\u306F\u4F5C\u6210\u3059\u308B\u30E2\u30FC\u30C9\u306E\u540D\u524D\u3067\u3059\u3002\n<old-mode>\u306F\u65E2\u5B58\u306E\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u306E\u540D\u524D\u3067\u3059\u3002\n<mode>\u306F\u65E2\u5B58\u306E\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u306E\u540D\u524D\u3067\u3059\u3002\n\n<old-mode>\u304C\u5B58\u5728\u3059\u308B\u5834\u5408\u3001\u305D\u306E\u8A2D\u5B9A\u304C\u65B0\u898F\u30E2\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3055\u308C\u307E\u3059\u3002\n\n\u5165\u529B\u3055\u308C\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u306B\u30E2\u30FC\u30C9\u304C\u63D0\u4F9B\u3059\u308B\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306F\u3001'/set format'\u8A2D\u5B9A\u306B\u3088\u3063\u3066\n\u6C7A\u5B9A\u3055\u308C\u307E\u3059\u3002\u305F\u3060\u3057\u3001\u5165\u529B\u3055\u308C\u305F\u30B3\u30DE\u30F3\u30C9\u306E\u5834\u5408\u3001\u30E2\u30FC\u30C9\u4F5C\u6210\u6642\u306B\n\u4F7F\u7528\u3055\u308C\u305F\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5F93\u3063\u3066\u3001\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u306F\u30AA\u30F3\u307E\u305F\u306F\u30AA\u30D5\u306E\u3044\u305A\u308C\u304B\u306B\u306A\u308A\u307E\u3059\u3002\n\u30AA\u30D7\u30B7\u30E7\u30F3'-command'\u307E\u305F\u306F\u30AA\u30D7\u30B7\u30E7\u30F3'-quiet'\u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n'-command'\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u65B0\u898F\u30E2\u30FC\u30C9\u3067\u306F\u3001\u60C5\u5831/\u691C\u8A3C\u4E2D\u306E\u30B3\u30DE\u30F3\u30C9\u30FB\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n'-quiet'\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u5FC5\u8981\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF(\u30A8\u30E9\u30FC\u306A\u3069)\u306E\u307F\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\n\u65B0\u898F\u30E2\u30FC\u30C9\u3092\u4F5C\u6210\u3057\u305F\u3089\u3001'/set format'\u3001'/set prompt'\u304A\u3088\u3073'/set truncation'\u3092\u4F7F\u7528\u3057\u3066\n\u69CB\u6210\u3057\u307E\u3059\u3002\u65B0\u898F\u30E2\u30FC\u30C9\u3092\u4F7F\u7528\u3059\u308B\u306B\u306F\u3001'/set \
 feedback'\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\n'-retain'\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408('-delete'\u30AA\u30D7\u30B7\u30E7\u30F3\u306A\u3057)\u3001\n\u30E2\u30FC\u30C9(\u73FE\u5728\u306E\u30D7\u30ED\u30F3\u30D7\u30C8\u3001\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u304A\u3088\u3073\u5207\u6368\u3066\u8A2D\u5B9A\u3092\u542B\u3080)\u306F\u3001\u5C06\u6765\u306E\u5B9F\u884C\u3067\n\u4F7F\u7528\u3067\u304D\u308B\u3088\u3046\u306Bjshell\u30C4\u30FC\u30EB\u306B\u683C\u7D0D\u3055\u308C\u307E\u3059\u3002retain\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3001\n\u30E2\u30FC\u30C9\u306F\u73FE\u5728\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3067\u306E\u307F\u5B9A\u7FA9\u3055\u308C\u307E\u3059\u3002\u30E2\u30FC\u30C9\u306E\u8A2D\u5B9A\u3092\u66F4\u65B0\u3057\u305F\u5F8C\u3001\n\u30BB\u30C3\u30B7\u30E7\u30F3\u9593\u3067\u66F4\u65B0\u3092\u4FDD\u5B58\u3059\u308B\u306B\u306F\u3001\u30E2\u30FC\u30C9\u3092\u518D\u5EA6\u4FDD\u6301\u3057\u307E\u3059\u3002\n\n'-delete'\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u307F\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30E2\u30FC\u30C9\u306F\u73FE\u5728\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u304B\u3089\u524A\u9664\u3055\u308C\u307E\u3059\u3002\n'-retain'\u3068'-delete'\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u4E21\u65B9\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30E2\u30FC\u30C9\u306F\u73FE\u5728\u3068\u5C06\u6765\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u304B\u3089\n\u524A\u9664\u3055\u308C\u307E\u3059\u3002\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u306A\u3044\u5F62\u5F0F\u306F\u3001\u30E2\u30FC\u30C9\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n<mode>\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u305D\u306E\u30E2\u30FC\u30C9\u306E\u30E2\u30FC\u30C9\u8A2D\u5B9A\u306E\u307F\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\u6CE8\u610F: \u30E2\u30FC\u30C9\u306E\u8A2D\u5B9A\u306B\u306F\u3001\u30D7\u30ED\u30F3\u30D7\u30C8\u3001\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u304A\u3088\u3073\u5207\u6368\u3066\u306E\u8A2D\u5B9A\u304C\n\u542B\u307E\u308C\u307E\u3059\u3002\n\u4F8B:\n\t/set mode mymode\n\n\u30E2\u30FC\u30C9mymode\u306E\u30E2\u30FC\u30C9\u3001\u30D7\u30ED\u30F3\u30D7\u30C8\u3001\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u304A\u3088\u3073\u5207\u6368\u3066\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059
 
-help.set.prompt.summary = \u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002
+help.set.prompt.summary = \u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059
 
 help.set.prompt = \u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002\u6A19\u6E96\u30D7\u30ED\u30F3\u30D7\u30C8\u3068\u7D9A\u884C\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u4E21\u65B9\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059:\n\n\t/set prompt <mode> "<prompt>" "<continuation-prompt>"\n\n\u6A19\u6E96\u30D7\u30ED\u30F3\u30D7\u30C8\u3068\u7D9A\u884C\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8868\u793A\u3057\u307E\u3059:\n\n\t/set prompt [<mode>]\n\n<mode>\u306F\u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u306E\u540D\u524D\u3067\u3059\u3002\n<prompt>\u304A\u3088\u3073<continuation-prompt>\u306F\u5165\u529B\u30D7\u30ED\u30F3\u30D7\u30C8\u3068\u3057\u3066\u51FA\u529B\u3055\u308C\u308B\u5F15\u7528\u7B26\u3067\u56F2\u307E\u308C\u305F\u6587\u5B57\u5217\u3067\u3059\u3002\n\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3001\u4E21\u65B9\u3068\u3082\u3001\u6B21\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u3067\u7F6E\u304D\u63DB\u3048\u3089\u308C\u308B'%%s'\u3092\u542B\u3080\u3053\u3068\u304C\u3067\u304D\u307E\u3059 --\n\u5165\u529B\u3057\u305F\u5185\u5BB9\u304C\u305D\u306EID\u306B\u5272\u308A\u5F53\u3066\u3089\u308C\u306A\u3044\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002\u305F\u3068\u3048\u3070\u3001\u30A8\u30E9\u30FC\u307E\u305F\u306F\u30B3\u30DE\u30F3\u30C9\u3067\u3042\u308B\u5834\u5408\u306A\u3069\u3067\u3059\u3002\n\u7D9A\u884C\u30D7\u30ED\u30F3\u30D7\u30C8\u306F\u8907\u6570\u884C\u30B9\u30CB\u30DA\u30C3\u30C8\u306E2\u884C\u76EE\u4EE5\u964D\u3067\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n\n<prompt>\u306E\u306A\u3044\u5F62\u5F0F\u306F\u3001\u73FE\u5728\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n<mode>\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u305D\u306E\u30E2\u30FC\u30C9\u306E\u30D7\u30ED\u30F3\u30D7\u30C8\u306E\u307F\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\u4F8B:\n\t/set prompt mymode\n\u30E2\u30FC\u30C9mymode\u306B\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u30D7\u30ED\u30F3\u30D7\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\n
 
-help.set.editor.summary =/edit\u30B3\u30DE\u30F3\u30C9\u3067\u8D77\u52D5\u3059\u308B\u30B3\u30DE\u30F3\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002
+help.set.editor.summary =/edit\u30B3\u30DE\u30F3\u30C9\u3067\u8D77\u52D5\u3059\u308B\u30B3\u30DE\u30F3\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059
 
 help.set.editor =/edit\u30B3\u30DE\u30F3\u30C9\u3067\u8D77\u52D5\u3059\u308B\u30B3\u30DE\u30F3\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059:\n\n\t/set editor [-retain] [-wait] <command>\n\n\t/set editor [-retain] -default\n\n\t/set editor [-retain] -delete\n\n\u5C06\u6765\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u305F\u3081\u306B\u73FE\u5728\u306E\u30A8\u30C7\u30A3\u30BF\u8A2D\u5B9A\u3092\u4FDD\u6301\u3057\u307E\u3059:\n\n\t/set editor -retain\n\n/edit\u30B3\u30DE\u30F3\u30C9\u3067\u8D77\u52D5\u3059\u308B\u30B3\u30DE\u30F3\u30C9\u3092\u8868\u793A\u3057\u307E\u3059:\n\n\t/set editor\n\n<command>\u306F\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u4F9D\u5B58\u6587\u5B57\u5217\u3067\u3059\u3002\n<command>\u306B\u306F\u30B9\u30DA\u30FC\u30B9\u3067\u533A\u5207\u3089\u308C\u305F\u5F15\u6570(\u30D5\u30E9\u30B0\u306A\u3069)\u304C\u542B\u307E\u308C\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059\n\n-default\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u7D44\u8FBC\u307F\u30A8\u30C7\u30A3\u30BF\u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n\n-delete\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u4EE5\u524D\u306E\u8A2D\u5B9A\u306F\u7121\u8996\u3055\u308C\u307E\u3059 -- \u30A8\u30C7\u30A3\u30BF\n\u8A2D\u5B9A\u306F\u3001jshell\u30C4\u30FC\u30EB\u306E\u8D77\u52D5\u6642\u306B\u521D\u671F\u5316\u3055\u308C\u307E\u3059\u3002\u5177\u4F53\u7684\u306B\u306F\u3001\u4FDD\u6301\u3055\u308C\u305F\u8A2D\u5B9A\u304C\n\u5B58\u5728\u3059\u308B\u5834\u5408\u3001(\u4FDD\u6301\u3055\u308C\u305F\u8A2D\u5B9A\u3092\u524A\u9664\u3059\u308B-retain\u3068-delete\u306E\u4E21\u65B9\u304C\u6307\u5B9A\u3055\u308C\u3066\n\u3044\u306A\u3051\u308C\u3070)\u305D\u308C\u304C\u4F7F\u7528\u3055\u308C\u3001\u6B21\u306E\u74B0\u5883\u5909\u6570\u306E\u3044\u305A\u308C\u304B\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\n\u305D\u308C\u304C(\u305D\u306E\u9806\u5E8F\u3067)\u4F7F\u7528\u3055\u308C\u307E\u3059: JSHELLEDITOR\u3001VISUAL\u307E\u305F\u306FEDITOR\u3002\n\u305D\u308C\u4EE5\u5916\u306E\u5834\u5408\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u7D44\u8FBC\u307F\u30A8\u30C7\u30A3\u30BF\u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n\n<command>\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u305D\u308C\u304C\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u3068\u3057\u3066\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002<command>\u306F\u3001\n\u30D7\u30ED\u30B0\u30E9\u30E0\u3068\u30BC\u30ED\u500B\u4EE5\u4E0A\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u5F15\u6570\u3067\u69CB\u6210\u3055\u308C\u307E\u3059\u3002<command>\u304C\u4F7F\u7528\u3055\u308C\u308B\u5834\u5408\u3001\n\u7DE8\u96C6\u5BFE\u8C61\u306E\u4E00\u6642\u30D5\u30A1\u30A4\u30EB\u304C\u6700\u5F8C\u306E\u5F15\u6570\u3068\u3057\u3066\u8FFD\u52A0\u3055\u308C\u307E\u3059\u3002\n\u901A\u5E38\u3001\u7DE8\u96C6\u30E2\u30FC\u30C9\u306F\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u304C\u7D42\u4E86\u3059\u308B\u307E\u3067\u7D99\u7D9A\u3057\u307E\u3059\u3002\u4E00\u90E8\u306E\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u306F\u3001\n\u305F\u3068\u3048\u3070\u7DE8\u96C6\u30A6\u30A3\u30F3\u30C9\u30A6\u304C\u7D42\u4E86\u3059\u308B\u3068\u5373\u5EA7\u306B\u7D42\u4E86\u3059\u308B\u305F\u3081\u3001\u5916\u90E8\u30A8\u30C7\u30A3\u30BF\u30FB\u30D5\u30E9\u30B0\u3092\u4F7F\u7528\u3057\u3066\n\u5373\u6642\u306E\u7D42\u4E86\u3092\u56DE\u907F\u3059\u308B\u304B\u3001-wait\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u3066\u3001\u7DE8\u96C6\u30E2\u30FC\u30C9\u304C\u7D42\u4E86\u3059\u308B\u30BF\u30A4\u30DF\u30F3\u30B0\u3092\n\u6307\u5B9A\u3059\u308B\u3088\u3046\u30E6\u30FC\u30B6\u30FC\u306B\u8981\u6C42\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u6CE8\u610F: \
 \u7DE8\u96C6\u30E2\u30FC\u30C9\u4E2D\u3001\u30B3\u30DE\u30F3\u30C9\u5165\u529B\u306F\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002\u7DE8\u96C6\u30E2\u30FC\u30C9\u306E\u7D42\u4E86\u5F8C\u3001\u7DE8\u96C6\u3055\u308C\u305F\n\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5909\u66F4\u5185\u5BB9\u306F\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002\n\n-retain\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u8A2D\u5B9A\u306Fjshell\u30C4\u30FC\u30EB\u306E\u3053\u306E\u5B9F\u884C\u3068\u5C06\u6765\u306E\n\u5B9F\u884C\u3067\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n\n<command>\u307E\u305F\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u306A\u3044\u5F62\u5F0F\u306F\u3001\u30A8\u30C7\u30A3\u30BF\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n
 
-help.set.start.summary =\u8D77\u52D5\u69CB\u6210\u3092\u8A2D\u5B9A\u3057\u307E\u3059\u3002
+help.set.start.summary =\u8D77\u52D5\u69CB\u6210\u3092\u8A2D\u5B9A\u3057\u307E\u3059
 
 help.set.start =\u8D77\u52D5\u69CB\u6210\u3092\u8A2D\u5B9A\u3057\u307E\u3059 -- \u8D77\u52D5\u6642\u306B\u8AAD\u307F\u53D6\u3089\u308C\u308B\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u30B7\u30FC\u30B1\u30F3\u30B9:\n\n\t/set start [-retain] <file>...\n\n\t/set start [-retain] -default\n\n\t/set start [-retain] -none\n\n\u5C06\u6765\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u306E\u305F\u3081\u306B\u8D77\u52D5\u69CB\u6210\u3092\u4FDD\u6301\u3057\u307E\u3059:\n\n\t/set start -retain\n\n\u8D77\u52D5\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059:\n\n\t/set start\n\n\u3053\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3067/reset\u3001/reload\u307E\u305F\u306F/env\u30B3\u30DE\u30F3\u30C9\u304C\u4F7F\u7528\u3055\u308C\u308B\u5834\u5408\u3001\n\u6307\u5B9A\u3057\u305F<file>\u306E\u5185\u5BB9\u304C\u3001\u4F7F\u7528\u3055\u308C\u308B\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306B\u306A\u308A\u307E\u3059\u3002\n\u304B\u308F\u308A\u306B-default\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u305F\u8D77\u52D5\u30A4\u30F3\u30DD\u30FC\u30C8\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u304C\n\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n-none\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u8D77\u52D5\u304C\u7A7A\u306B\u306A\u308A\u307E\u3059 -- \u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u307E\u305F\u306F\n\u30B3\u30DE\u30F3\u30C9\u304C\u4F7F\u7528\u3055\u308C\u307E\u305B\u3093\u3002\n\u3053\u306E\u30B3\u30DE\u30F3\u30C9\u306F\u8D77\u52D5\u8A2D\u5B9A\u3092\u30C6\u30B9\u30C8\u3059\u308B\u306E\u306B\u6709\u52B9\u3067\u3059\u3002jshell\u30C4\u30FC\u30EB\u306E\u4ECA\u5F8C\u306E\u5B9F\u884C\u306E\u305F\u3081\u306B\n\u305D\u308C\u3089\u3092\u4FDD\u6301\u3059\u308B\u306B\u306F\u3001\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u307E\u3059:\n\t/set start -retain\n\n-retain\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u8A2D\u5B9A\u306Fjshell\u30C4\u30FC\u30EB\u306E\u3053\u306E\u5B9F\u884C\u3068\u5C06\u6765\u306E\n\u5B9F\u884C\u3067\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n\n<file>\u307E\u305F\u306F\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u306A\u3044\u5F62\u5F0F\u306F\u3001\u8D77\u52D5\u8A2D\u5B9A\u3092\u8868\u793A\u3057\u307E\u3059\u3002\n\u6CE8\u610F: \u8D77\u52D5\u304C\u6700\u5F8C\u306B\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u3053\u308C\u306F'set start'\u30B3\u30DE\u30F3\u30C9\u304A\u3088\u3073\n\u305D\u306E\u30D5\u30A1\u30A4\u30EB\u306E\u5185\u5BB9\u3068\u3068\u3082\u306B\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\n<file>\u306F\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u304B\u3001\u4E8B\u524D\u5B9A\u7FA9\u3055\u308C\u305F\n\u8D77\u52D5\u30D5\u30A1\u30A4\u30EB\u540D\u306E\u3044\u305A\u308C\u304B(DEFAULT\u3001PRINTING\u307E\u305F\u306FJAVASE)\u306B\u306A\u308A\u307E\u3059\u3002\n\u3053\u308C\u3089\u306F\u3001\u305D\u308C\u305E\u308C\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A4\u30F3\u30DD\u30FC\u30C8\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8(-default\u3067\u4F7F\u7528)\u3001print()\u3001\nprintln()\u304A\u3088\u3073printf()\u30E1\u30BD\u30C3\u30C9\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5B9A\u7FA9\u3001\u307E\u305F\u306F\u3059\u3079\u3066\u306EJava SE\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\n\u30A4\u30F3\u30DD\u30FC\u30C8\u3067\u3059\u3002\n\u8907\u6570\u306E<file>\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\u4F8B\u3092\u6B21\u306B\u793A\u3057\u307E\u3059:\n\n\t/set start -retain DEFAULT PRINTING
 
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_zh_CN.properties	Thu Feb 08 14:58:40 2018 +0530
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_zh_CN.properties	Thu Feb 08 22:34:20 2018 -0800
@@ -44,7 +44,7 @@
 jshell.err.file.exception = ''{0}'' \u7684\u6587\u4EF6 ''{1}'' \u5F15\u53D1\u4E86\u5F02\u5E38\u9519\u8BEF: {2}
 jshell.err.file.filename = ''{0}'' \u9700\u8981\u6587\u4EF6\u540D\u53C2\u6570\u3002
 
-jshell.err.startup.unexpected.exception = \u8BFB\u53D6\u542F\u52A8\u65F6\u51FA\u73B0\u610F\u5916\u7684\u5F02\u5E38\u9519\u8BEF: {0}
+jshell.err.startup.unexpected.exception = \u8BFB\u53D6\u542F\u52A8\u65F6\u51FA\u73B0\u610F\u5916\u7684\u5F02\u5E38\u9519\u8BEF\uFF1A{0}
 jshell.err.unexpected.exception = \u610F\u5916\u5F02\u5E38\u9519\u8BEF: {0}
 
 jshell.err.invalid.command = \u65E0\u6548\u7684\u547D\u4EE4: {0}
@@ -92,15 +92,15 @@
 jshell.msg.help.begin =\u952E\u5165 Java \u8BED\u8A00\u8868\u8FBE\u5F0F, \u8BED\u53E5\u6216\u58F0\u660E\u3002\n\u6216\u8005\u952E\u5165\u4EE5\u4E0B\u547D\u4EE4\u4E4B\u4E00:\n
 jshell.msg.help.subject =\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u952E\u5165 ''/help'', \u540E\u8DDF\n\u547D\u4EE4\u6216\u4E3B\u9898\u7684\u540D\u79F0\u3002\n\u4F8B\u5982 ''/help /list'' \u6216 ''/help intro''\u3002\u4E3B\u9898:\n\n
 
-jshell.err.no.snippet.with.id = \u6CA1\u6709\u7247\u6BB5\u5177\u6709 ID: {0}
+jshell.err.no.snippet.with.id = \u6CA1\u6709\u7247\u6BB5\u5177\u6709 ID\uFF1A{0}
 jshell.err.end.snippet.range.less.than.start = \u7247\u6BB5\u8303\u56F4\u7684\u7ED3\u675F\u503C\u5C0F\u4E8E\u5F00\u59CB\u503C: {0} - {1}
-jshell.err.range.requires.id = \u7247\u6BB5\u8303\u56F4\u9700\u8981\u7247\u6BB5 ID: {0}
+jshell.err.range.requires.id = \u7247\u6BB5\u8303\u56F4\u9700\u8981\u7247\u6BB5 ID\uFF1A{0}
 
 jshell.err.exit.not.expression = /exit \u7684\u53C2\u6570\u5FC5\u987B\u662F\u6709\u6548\u7684\u6574\u6570\u8868\u8FBE\u5F0F, \u8FD9\u4E0D\u662F\u8868\u8FBE\u5F0F: {0}
 jshell.err.exit.bad.type = /exit \u7684\u53C2\u6570\u5FC5\u987B\u662F\u6709\u6548\u7684\u6574\u6570\u8868\u8FBE\u5F0F, \u7C7B\u578B\u4E3A {1}: {0}
 jshell.err.exit.bad.value = /exit \u7684\u53C2\u6570\u5177\u6709\u9519\u8BEF\u503C {1}: {0}
 
-jshell.err.drop.arg =\u5728 /drop \u53C2\u6570\u4E2D, \u8BF7\u6307\u5B9A\u8981\u5220\u9664\u7684\u5BFC\u5165, \u53D8\u91CF, \u65B9\u6CD5\u6216\u7C7B\u3002\n\u6309 id \u6216\u540D\u79F0\u6307\u5B9A\u3002\u4F7F\u7528 /list \u53EF\u67E5\u770B id\u3002\u4F7F\u7528 /reset \u53EF\u91CD\u7F6E\u6240\u6709\u72B6\u6001\u3002
+jshell.err.drop.arg =\u5728 /drop \u53C2\u6570\u4E2D\uFF0C\u8BF7\u6307\u5B9A\u8981\u5220\u9664\u7684\u5BFC\u5165\u3001\u53D8\u91CF\u3001\u65B9\u6CD5\u6216\u7C7B\u3002\n\u6309 ID \u6216\u540D\u79F0\u6307\u5B9A\u3002\u4F7F\u7528 /list \u53EF\u67E5\u770B ID\u3002\u4F7F\u7528 /reset \u53EF\u91CD\u7F6E\u6240\u6709\u72B6\u6001\u3002
 jshell.err.failed = \u5931\u8D25\u3002
 jshell.msg.native.method = \u672C\u673A\u65B9\u6CD5
 jshell.msg.unknown.source = \u672A\u77E5\u6E90
@@ -172,135 +172,138 @@
 
 jshell.fix.wrong.shortcut =Shift-Tab \u540E\u51FA\u73B0\u610F\u5916\u7684\u5B57\u7B26\u3002\n\u4F7F\u7528 "i" \u8868\u793A\u81EA\u52A8\u5BFC\u5165, \u4F7F\u7528 "v" \u8868\u793A\u53D8\u91CF\u521B\u5EFA, \u4F7F\u7528 "i" \u8868\u793A\u65B9\u6CD5\u521B\u5EFA\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605:\n /help \u5FEB\u6377\u65B9\u5F0F
 
-help.usage = \u7528\u6CD5:   jshell <\u9009\u9879>... <\u52A0\u8F7D\u6587\u4EF6>...\n\u5176\u4E2D, \u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC:\n    --class-path <\u8DEF\u5F84>   \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n    --module-path <\u8DEF\u5F84>  \u6307\u5B9A\u67E5\u627E\u5E94\u7528\u7A0B\u5E8F\u6A21\u5757\u7684\u4F4D\u7F6E\n    --add-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                          \u6307\u5B9A\u8981\u89E3\u6790\u7684\u6A21\u5757; \u5982\u679C <\u6A21\u5757> \n                          \u4E3A ALL-MODULE-PATH, \u5219\u4E3A\u6A21\u5757\u8DEF\u5F84\u4E2D\u7684\u6240\u6709\u6A21\u5757\n    --startup <\u6587\u4EF6>      \u5BF9\u542F\u52A8\u5B9A\u4E49\u6267\u884C\u5355\u6B21\u66FF\u6362\n    --no-startup          \u4E0D\u8FD0\u884C\u542F\u52A8\u5B9A\u4E49\n    --feedback <\u6A21\u5F0F>     \u6307\u5B9A\u521D\u59CB\u53CD\u9988\u6A21\u5F0F\u3002\u8BE5\u6A21\u5F0F\u53EF\u4EE5\u662F\n                            \u9884\u5B9A\u4E49\u7684 (silent, concise, normal \u6216 verbose),\n                            \u4E5F\u53EF\u662F\u4EE5\u524D\u7528\u6237\u5B9A\u4E49\u7684\n    -q                    \u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E: --feedback concise\n    -s                    \u771F\u6B63\u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E: --feedback silent\n    -v                    \u8BE6\u7EC6\u53CD\u9988\u3002\u7B49\u540C\u4E8E: --feedback verbose\n    -J<\u6807\u8BB0>              \u76F4\u63A5\u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FD0\u884C\u65F6\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -J\n    -R<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FDC\u7A0B\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FDC\u7A0B\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -R\n    -C<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u7F16\u8BD1\u5668\u3002\n                            \u4E3A\u6BCF\u4E2A\u7F16\u8BD1\u5668\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -C\n    --version             \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u9000\u51FA\n    --show-version        \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u7EE7\u7EED\n    --help                \u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u6B64\u63D0\u8981\u5E76\u9000\u51FA\n    --help-extra, -X      \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\u5E76\u9000\u51FA\n\u6587\u4EF6\u53C2\u6570\u53EF\u4EE5\u662F\u6587\u4EF6\u540D, \u6216\u8005\u662F\u9884\u5B9A\u4E49\u7684\u6587\u4EF6\u540D\u4E4B\u4E00: DEFAULT,\nPRINTING \u6216 JAVASE\u3002\n\u52A0\u8F7D\u6587\u4EF6\u4E5F\u53EF\u4EE5\u662F "-", \u7528\u4E8E\u6307\u793A\u6807\u51C6\u8F93\u5165, \u65E0\u4EA4\u4E92\u5F0F I/O\u3002\n
-
-help.usage.x = \    --add-exports <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>      \u5C06\u6307\u5B9A\u7684\u6A21\u5757\u4E13\u7528\u7A0B\u5E8F\u5305\u5BFC\u51FA\u5230\u7247\u6BB5\n    --execution <\u89C4\u8303>                 \u6307\u5B9A\u66FF\u4EE3\u6267\u884C\u5F15\u64CE\u3002\n                                         \u5176\u4E2D <\u89C4\u8303> \u662F ExecutionControl \u89C4\u8303\u3002\n                                         \u6709\u5173\u89C4\u8303\u7684\u8BED\u6CD5, \u8BF7\u53C2\u9605\u7A0B\u5E8F\u5305\n                                         jdk.jshell.spi \u7684\u6587\u6863\n    \n\u8FD9\u4E9B\u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879, \u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
+help.usage = \u7528\u6CD5\uFF1A   jshell <\u9009\u9879>... <\u52A0\u8F7D\u6587\u4EF6>...\n\u5176\u4E2D\uFF0C\u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC\uFF1A\n    --class-path <\u8DEF\u5F84>   \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n    --module-path <\u8DEF\u5F84>  \u6307\u5B9A\u67E5\u627E\u5E94\u7528\u7A0B\u5E8F\u6A21\u5757\u7684\u4F4D\u7F6E\n    --add-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                          \u6307\u5B9A\u8981\u89E3\u6790\u7684\u6A21\u5757\uFF1B\u5982\u679C <\u6A21\u5757> \n                          \u4E3A ALL-MODULE-PATH\uFF0C\u5219\u4E3A\u6A21\u5757\u8DEF\u5F84\u4E2D\u7684\u6240\u6709\u6A21\u5757\n    --startup <\u6587\u4EF6>      \u5BF9\u542F\u52A8\u5B9A\u4E49\u6267\u884C\u5355\u6B21\u66FF\u6362\n    --no-startup          \u4E0D\u8FD0\u884C\u542F\u52A8\u5B9A\u4E49\n    --feedback <\u6A21\u5F0F>     \u6307\u5B9A\u521D\u59CB\u53CD\u9988\u6A21\u5F0F\u3002\u8BE5\u6A21\u5F0F\u53EF\u4EE5\u662F\n                            \u9884\u5B9A\u4E49\u7684\uFF08silent\u3001concise\u3001normal \u6216 verbose\uFF09\uFF0C\n                            \u4E5F\u53EF\u662F\u4EE5\u524D\u7528\u6237\u5B9A\u4E49\u7684\n    -q                    \u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback concise\n    -s                    \u771F\u6B63\u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback silent\n    -v                    \u8BE6\u7EC6\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback verbose\n    -J<\u6807\u8BB0>              \u76F4\u63A5\u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FD0\u884C\u65F6\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -J\n    -R<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FDC\u7A0B\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FDC\u7A0B\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -R\n    -C<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u7F16\u8BD1\u5668\u3002\n                            \u4E3A\u6BCF\u4E2A\u7F16\u8BD1\u5668\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -C\n    --version             \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u9000\u51FA\n    --show-version        \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u7EE7\u7EED\n    --help                \u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u6B64\u63D0\u8981\u5E76\u9000\u51FA\n    --help-extra, -X      \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\u5E76\u9000\u51FA\n\n\u6587\u4EF6\u53C2\u6570\u53EF\u4EE5\u662F\u6587\u4EF6\u540D\uFF0C\u6216\u8005\u662F\u9884\u5B9A\u4E49\u7684\u6587\u4EF6\u540D\u4E4B\u4E00\uFF1ADEFAULT\u3001\nPRINTING \u6216 JAVASE\u3002\n\u52A0\u8F7D\u6587\u4EF6\u4E5F\u53EF\u4EE5\u662F "-"\uFF0C\u7528\u4E8E\u6307\u660E\u6807\u51C6\u8F93\u5165\uFF0C\u6CA1\u6709\u4EA4\u4E92\u5F0F I/O\u3002\n\n\u6709\u5173\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF08--class-path\u3001\n--module-path \u548C --add-modules\uFF09\uFF0C\u8BF7\u53C2\u89C1\uFF1A\n\t/help context\n\n\u8DEF\u5F84\u5217\u51FA\u8981\u641C\u7D22\u7684\u76EE\u5F55\u548C\u6863\u6848\u3002\u5BF9\u4E8E Windows\uFF0C\u8BF7\u4F7F\u7528\n\u5206\u53F7 (;) \u6765\u5206\u9694\u8DEF\u5F84\u4E2D\u7684\u9879\u3002\u5728\u5176\u4ED6\u5E73\u53F0\u4E0A\uFF0C\u8BF7\u4F7F\u7528\n\u5192\u53F7 (:) \u6765\u5206\u9694\u5404\u9879\u3002\n
+help.usage.x = \    --add-exports <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>      \u6307\u5B9A\u8981\u8003\u8651\u4ECE\u5176\u5B9A\u4E49\u6A21\u5757\u5BFC\u51FA\n                                         \u7684\u7A0B\u5E8F\u5305\n    --execution <\u89C4\u8303>                 \u6307\u5B9A\u66FF\u4EE3\u6267\u884C\u5F15\u64CE\u3002\n                                         \u5176\u4E2D <\u89C4\u8303> \u662F ExecutionControl \u89C4\u8303\u3002\n                                         \u6709\u5173\u89C4\u8303\u7684\u8BED\u6CD5\uFF0C\u8BF7\u53C2\u9605\u7A0B\u5E8F\u5305\n                                         jdk.jshell.spi \u7684\u6587\u6863\n    \n\u8FD9\u4E9B\u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879\uFF0C\u5982\u6709\u66F4\u6539\uFF0C\u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
 
 help.list.summary = \u5217\u51FA\u60A8\u952E\u5165\u7684\u6E90
 help.list.args = [<\u540D\u79F0\u6216 id>|-all|-start]
-help.list =\u663E\u793A\u524D\u9762\u5E26\u6709\u7247\u6BB5 ID \u7684\u7247\u6BB5\u6E90\u3002\n\n/list\n\t\u5217\u51FA\u60A8\u952E\u5165\u7684\u6216\u4F7F\u7528 /open \u8BFB\u53D6\u7684\u5F53\u524D\u6D3B\u52A8\u7684\u4EE3\u7801\u7247\u6BB5\n\n/list -start\n\t\u5217\u51FA\u81EA\u52A8\u8BC4\u4F30\u7684\u542F\u52A8\u7247\u6BB5\n\n/list -all\n\t\u5217\u51FA\u6240\u6709\u7247\u6BB5, \u5305\u62EC\u5931\u8D25\u7684\u7247\u6BB5, \u8986\u76D6\u7684\u7247\u6BB5, \u5220\u9664\u7684\u7247\u6BB5\u548C\u542F\u52A8\u7247\u6BB5\n\n/list <\u540D\u79F0>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u7247\u6BB5 (\u7279\u522B\u662F\u6D3B\u52A8\u7247\u6BB5)\n\n/list <id>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u7247\u6BB5\n\n/list <id> <id>...\n\t\u5217\u51FA\u5177\u6709\u591A\u4E2A\u6307\u5B9A\u7247\u6BB5 ID \u7684\u591A\u4E2A\u7247\u6BB5\n\n/list <id>-<id>\n\t\u5217\u51FA\u5728\u7247\u6BB5 ID \u8303\u56F4\u5185\u7684\u7247\u6BB5
+help.list =\u663E\u793A\u524D\u9762\u5E26\u6709\u5176\u7247\u6BB5 ID \u7684\u7247\u6BB5\u3002\n\n/list\n\t\u5217\u51FA\u60A8\u952E\u5165\u7684\u6216\u4F7F\u7528 /open \u8BFB\u53D6\u7684\u5F53\u524D\u6D3B\u52A8\u7684\u4EE3\u7801\u7247\u6BB5\n\n/list -start\n\t\u5217\u51FA\u8BC4\u4F30\u7684\u542F\u52A8\u7247\u6BB5\n\n/list -all\n\t\u5217\u51FA\u6240\u6709\u7247\u6BB5\uFF0C\u5305\u62EC\u5931\u8D25\u7684\u7247\u6BB5\u3001\u8986\u76D6\u7684\u7247\u6BB5\u3001\u5220\u9664\u7684\u7247\u6BB5\u548C\u542F\u52A8\u7247\u6BB5\n\n/list <\u540D\u79F0>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u7247\u6BB5\uFF08\u7279\u522B\u662F\u6D3B\u52A8\u7247\u6BB5\uFF09\n\n/list <id>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u7247\u6BB5\u3002\n\t\u53EF\u4EE5\u4F7F\u7528\u4E00\u4E2A\u6216\u591A\u4E2A ID \u6216 ID \u8303\u56F4\uFF0C\u53C2\u89C1 '/help id'
 
-help.edit.summary = \u7F16\u8F91\u6309\u540D\u79F0\u6216 id \u5F15\u7528\u7684\u6E90\u6761\u76EE
+help.edit.summary = \u7F16\u8F91\u6E90\u6761\u76EE
 help.edit.args = <\u540D\u79F0\u6216 id>
-help.edit =\u5728\u5916\u90E8\u7F16\u8F91\u5668\u4E2D\u7F16\u8F91\u6E90\u7684\u7247\u6BB5\u3002\n\u4F7F\u7528 /set editor \u53EF\u4EE5\u8BBE\u7F6E\u8981\u4F7F\u7528\u7684\u7F16\u8F91\u5668\u3002\n\u5982\u679C\u5C1A\u672A\u8BBE\u7F6E\u7F16\u8F91\u5668, \u5219\u5C06\u542F\u52A8\u4E00\u4E2A\u7B80\u5355\u7684\u7F16\u8F91\u5668\u3002\n\n/edit <\u540D\u79F0>\n\t\u7F16\u8F91\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u7247\u6BB5 (\u7279\u522B\u662F\u6D3B\u52A8\u7247\u6BB5)\n\n/edit <id>\n\t\u7F16\u8F91\u5177\u6709\u6307\u5B9A\u7247\u6BB5 id \u7684\u7247\u6BB5\n\n/edit <id> <id>...\n\t\u7F16\u8F91\u5177\u6709\u591A\u4E2A\u6307\u5B9A\u7247\u6BB5 ID \u7684\u591A\u4E2A\u7247\u6BB5\n\n/edit <id>-<id>\n\t\u7F16\u8F91\u5728\u7247\u6BB5 ID \u8303\u56F4\u5185\u7684\u7247\u6BB5\n\n/edit -start\n\t\u7F16\u8F91\u81EA\u52A8\u8BC4\u4F30\u7684\u542F\u52A8\u7247\u6BB5\u3002\u4EFB\u4F55\u66F4\u6539\u4FDD\u6301\u5728\n\t\u6B64\u4F1A\u8BDD\u4E2D, \u4E0D\u5F71\u54CD\u542F\u52A8\u8BBE\u7F6E\n\n/edit -all\n\t\u7F16\u8F91\u6240\u6709\u7247\u6BB5, \u5305\u62EC\u5931\u8D25\u7684\u7247\u6BB5, \u8986\u76D6\u7684\u7247\u6BB5, \u5220\u9664\u7684\u7247\u6BB5\u548C\u542F\u52A8\u7247\u6BB5\n\n/edit\n\t\u7F16\u8F91\u60A8\u952E\u5165\u6216\u4F7F\u7528 /open \u8BFB\u53D6\u7684\u5F53\u524D\u6D3B\u52A8\u7684\u4EE3\u7801\u7247\u6BB5
+help.edit =\u5728\u5916\u90E8\u7F16\u8F91\u5668\u4E2D\u7F16\u8F91\u6E90\u7684\u7247\u6BB5\u3002\n\u4F7F\u7528 /set editor \u53EF\u4EE5\u8BBE\u7F6E\u8981\u4F7F\u7528\u7684\u7F16\u8F91\u5668\u3002\u5982\u679C\u5C1A\u672A\u8BBE\u7F6E\u7F16\u8F91\u5668\uFF0C\n\u5219\u5C06\u6309\u987A\u5E8F\u68C0\u67E5\u4EE5\u4E0B\u73AF\u5883\u53D8\u91CF\uFF1AJSHELLEDITOR\u3001VISUAL \n\u548C EDITOR\u3002\u5982\u679C\u5C1A\u672A\u8BBE\u7F6E\u7F16\u8F91\u5668\u5E76\u4E14\u672A\u8BBE\u7F6E\u4EFB\u4F55\n\u7F16\u8F91\u5668\u73AF\u5883\u53D8\u91CF\uFF0C\u5219\u5C06\u542F\u52A8\u4E00\u4E2A\u7B80\u5355\u7684\u7F16\u8F91\u5668\u3002\n\n/edit <\u540D\u79F0>\n\t\u7F16\u8F91\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u7247\u6BB5\uFF08\u7279\u522B\u662F\u6D3B\u52A8\u7247\u6BB5\uFF09\n\n/edit <id>\n\t\u7F16\u8F91\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u7247\u6BB5\u3002\n\t\u53EF\u4EE5\u4F7F\u7528\u4E00\u4E2A\u6216\u591A\u4E2A ID \u6216 ID \u8303\u56F4\uFF0C\u53C2\u89C1 '/help id'\n\n/edit -start\n\t\u7F16\u8F91\u542F\u52A8\u7247\u6BB5\u3002\u4EFB\u4F55\u66F4\u6539\u4FDD\u6301\u5728\u6B64\u4F1A\u8BDD\u4E2D\uFF0C\n\t\u4E0D\u5F71\u54CD\u542F\u52A8\u8BBE\u7F6E\n\n/edit -all\n\t\u7F16\u8F91\u6240\u6709\u7247\u6BB5\uFF0C\u5305\u62EC\u5931\u8D25\u7684\u7247\u6BB5\u3001\u8986\u76D6\u7684\u7247\u6BB5\u3001\u5220\u9664\u7684\u7247\u6BB5\u548C\u542F\u52A8\u7247\u6BB5\n\n/edit\n\t\u7F16\u8F91\u60A8\u952E\u5165\u6216\u4F7F\u7528 /open \u8BFB\u53D6\u7684\u5F53\u524D\u6D3B\u52A8\u7684\u4EE3\u7801\u7247\u6BB5
 
-help.drop.summary = \u5220\u9664\u6309\u540D\u79F0\u6216 id \u5F15\u7528\u7684\u6E90\u6761\u76EE
+help.drop.summary = \u5220\u9664\u6E90\u6761\u76EE
 help.drop.args = <\u540D\u79F0\u6216 id>
-help.drop =\u5220\u9664\u7247\u6BB5 -- \u4F7F\u7247\u6BB5\u5904\u4E8E\u4E0D\u6D3B\u52A8\u72B6\u6001\u3002\n\n/drop <name>\n\t\u5220\u9664\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u7247\u6BB5\n\n/drop <id>\n\t\u5220\u9664\u5177\u6709\u6307\u5B9A\u7247\u6BB5 id \u7684\u7247\u6BB5\n\n/drop <id> <id>...\n\t\u5220\u9664\u5177\u6709\u591A\u4E2A\u6307\u5B9A\u7247\u6BB5 ID \u7684\u591A\u4E2A\u7247\u6BB5\n\n/drop <id>-<id>\n\t\u5220\u9664\u5728\u7247\u6BB5 ID \u8303\u56F4\u5185\u7684\u7247\u6BB5
+help.drop =\u5220\u9664\u7247\u6BB5 -- \u4F7F\u7247\u6BB5\u5904\u4E8E\u4E0D\u6D3B\u52A8\u72B6\u6001\u3002\n\n/drop <\u540D\u79F0>\n\t\u5220\u9664\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u7247\u6BB5\n\n/drop <id>\n\t\u5220\u9664\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u7247\u6BB5\u3002\n\t\u53EF\u4EE5\u4F7F\u7528\u4E00\u4E2A\u6216\u591A\u4E2A ID \u6216 ID \u8303\u56F4\uFF0C\u53C2\u89C1 '/help id'
 
-help.save.summary = \u5C06\u7247\u6BB5\u6E90\u4FDD\u5B58\u5230\u6587\u4EF6\u3002
+help.save.summary = \u5C06\u7247\u6BB5\u6E90\u4FDD\u5B58\u5230\u6587\u4EF6
 help.save.args = [-all|-history|-start] <\u6587\u4EF6>
-help.save =\u5C06\u6307\u5B9A\u7684\u7247\u6BB5\u548C/\u6216\u547D\u4EE4\u4FDD\u5B58\u5230\u6307\u5B9A\u6587\u4EF6\u3002\n\n/save <\u6587\u4EF6>\n\t\u5C06\u5F53\u524D\u6D3B\u52A8\u7247\u6BB5\u7684\u6E90\u4FDD\u5B58\u5230\u6587\u4EF6\u3002\n\n/save -all <\u6587\u4EF6>\n\t\u5C06\u6240\u6709\u7247\u6BB5\u7684\u6E90\u4FDD\u5B58\u5230\u6587\u4EF6\u3002\n\t\u8FD9\u5305\u62EC\u8986\u76D6\u7684\u6E90, \u5931\u8D25\u7684\u6E90\u4EE5\u53CA\u542F\u52A8\u4EE3\u7801\u3002\n\n/save -history <\u6587\u4EF6>\n\t\u4FDD\u5B58\u81EA\u542F\u52A8 jshell \u4EE5\u6765\u8F93\u5165\u7684\u6240\u6709\u547D\u4EE4\u548C\u7247\u6BB5\u7684\u987A\u5E8F\u5386\u53F2\u8BB0\u5F55\u3002\n\n/save -start <\u6587\u4EF6>\n\t\u5C06\u5F53\u524D\u542F\u52A8\u5B9A\u4E49\u4FDD\u5B58\u5230\u6587\u4EF6\u3002\n\n/save <id> <\u6587\u4EF6>\n\t\u4FDD\u5B58\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u7247\u6BB5\n\n/save <id> <id>... <\u6587\u4EF6>\n\t\u4FDD\u5B58\u5177\u6709\u591A\u4E2A\u6307\u5B9A\u7247\u6BB5 ID \u7684\u591A\u4E2A\u7247\u6BB5\n\n/save <id>-<id> <\u6587\u4EF6>\n\t\u4FDD\u5B58\u5728\u7247\u6BB5 ID \u8303\u56F4\u5185\u7684\u7247\u6BB5
+help.save =\u5C06\u6307\u5B9A\u7684\u7247\u6BB5\u548C/\u6216\u547D\u4EE4\u4FDD\u5B58\u5230\u6307\u5B9A\u6587\u4EF6\u3002\n\n/save <\u6587\u4EF6>\n\t\u5C06\u5F53\u524D\u6D3B\u52A8\u7247\u6BB5\u7684\u6E90\u4FDD\u5B58\u5230\u6587\u4EF6\u3002\n\n/save -all <\u6587\u4EF6>\n\t\u5C06\u6240\u6709\u7247\u6BB5\u7684\u6E90\u4FDD\u5B58\u5230\u6587\u4EF6\u3002\n\t\u8FD9\u5305\u62EC\u8986\u76D6\u7684\u3001\u5931\u8D25\u7684\u4EE5\u53CA\u542F\u52A8\u4EE3\u7801\u7684\u6E90\u3002\n\n/save -history <\u6587\u4EF6>\n\t\u4FDD\u5B58\u81EA\u542F\u52A8 jshell \u5DE5\u5177\u4EE5\u6765\u8F93\u5165\u7684\u6240\u6709\u547D\u4EE4\u548C\u7247\u6BB5\u7684\n\t\u987A\u5E8F\u5386\u53F2\u8BB0\u5F55\u3002\n\n/save -start <\u6587\u4EF6>\n\t\u5C06\u5F53\u524D\u542F\u52A8\u5B9A\u4E49\u4FDD\u5B58\u5230\u6587\u4EF6\n\n/save <id> <\u6587\u4EF6>\n\t\u4FDD\u5B58\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u7247\u6BB5\u3002\n\t\u53EF\u4EE5\u4F7F\u7528\u4E00\u4E2A\u6216\u591A\u4E2A ID \u6216 ID \u8303\u56F4\uFF0C\u53C2\u89C1 '/help id'
 
 help.open.summary = \u6253\u5F00\u6587\u4EF6\u4F5C\u4E3A\u6E90\u8F93\u5165
 help.open.args = <file>
-help.open =\u6253\u5F00\u6587\u4EF6\u5E76\u8BFB\u53D6\u5176\u5185\u5BB9\u4F5C\u4E3A\u7247\u6BB5\u548C\u547D\u4EE4\u3002\n\n/open <file>\n\t\u8BFB\u53D6\u6307\u5B9A\u7684\u6587\u4EF6\u4F5C\u4E3A jshell \u8F93\u5165\u3002
+help.open =\u6253\u5F00\u6587\u4EF6\u5E76\u8BFB\u53D6\u5176\u5185\u5BB9\u4F5C\u4E3A\u7247\u6BB5\u548C\u547D\u4EE4\u3002\n\n/open <\u6587\u4EF6>\n\t\u8BFB\u53D6\u6307\u5B9A\u7684\u6587\u4EF6\u4F5C\u4E3A jshell \u5DE5\u5177\u8F93\u5165\u3002\n\n<\u6587\u4EF6> \u53EF\u4EE5\u662F\u64CD\u4F5C\u7CFB\u7EDF\u6587\u4EF6\u540D\uFF0C\u4E5F\u53EF\u662F\u9884\u5B9A\u4E49\u7684\n\u6587\u4EF6\u540D\u4E4B\u4E00\uFF1ADEFAULT\u3001PRINTING \u6216 JAVASE\u3002\n\u8FD9\u4E9B\u9879\u7684\u8BF4\u660E\u5206\u522B\u5982\u4E0B\uFF1A\u9ED8\u8BA4\u5BFC\u5165\u7247\u6BB5\uFF08\u5982 -default \u6240\u4F7F\u7528\u7684\uFF09\uFF0C\nprint()\u3001println() \u548C printf() \u65B9\u6CD5\u7247\u6BB5\u7684\u5B9A\u4E49\uFF0C\u6216\n\u6240\u6709 Java SE \u7A0B\u5E8F\u5305\u7684\u5BFC\u5165\u9879\u3002\n
 
 help.vars.summary = \u5217\u51FA\u5DF2\u58F0\u660E\u53D8\u91CF\u53CA\u5176\u503C
 help.vars.args = [<\u540D\u79F0\u6216 id>|-all|-start]
-help.vars =\u5217\u51FA jshell \u53D8\u91CF\u7684\u7C7B\u578B, \u540D\u79F0\u548C\u503C\u3002\n\n/vars\n\t\u5217\u51FA\u5F53\u524D\u6D3B\u52A8\u7684 jshell \u53D8\u91CF\u7684\u7C7B\u578B, \u540D\u79F0\u548C\u503C\n\n/vars <\u540D\u79F0>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684 jshell \u53D8\u91CF (\u7279\u522B\u662F\u6D3B\u52A8\u53D8\u91CF)\n\n/vars <id>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684 jshell \u53D8\u91CF\n\n/vars <id> <id>... <\u6587\u4EF6>\n\t\u5217\u51FA\u5177\u6709\u591A\u4E2A\u6307\u5B9A\u7247\u6BB5 ID \u7684\u591A\u4E2A jshell \u53D8\u91CF\n\n/vars <id>-<id> <\u6587\u4EF6>\n\t\u5217\u51FA\u5728\u7247\u6BB5 ID \u8303\u56F4\u5185\u7684 jshell \u53D8\u91CF\n\n/vars -start\n\t\u5217\u51FA\u81EA\u52A8\u6DFB\u52A0\u7684\u542F\u52A8 jshell \u53D8\u91CF\n\n/vars -all\n\t\u5217\u51FA\u6240\u6709 jshell \u53D8\u91CF, \u5305\u62EC\u5DF2\u5931\u8D25\u53D8\u91CF, \u5DF2\u8986\u76D6\u53D8\u91CF, \u5DF2\u5220\u9664\u53D8\u91CF\u548C\u542F\u52A8\u53D8\u91CF
+help.vars =\u5217\u51FA\u5DF2\u8F93\u5165\u53D8\u91CF\u7684\u7C7B\u578B\u3001\u540D\u79F0\u548C\u503C\u3002\n\n/vars\n\t\u5217\u51FA\u5F53\u524D\u6D3B\u52A8\u53D8\u91CF\u7684\u7C7B\u578B\u3001\u540D\u79F0\u548C\u503C\n\n/vars <\u540D\u79F0>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u53D8\u91CF\uFF08\u7279\u522B\u662F\u6D3B\u52A8\u53D8\u91CF\uFF09\n\n/vars <id>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u53D8\u91CF\u3002\n\t\u53EF\u4EE5\u4F7F\u7528\u4E00\u4E2A\u6216\u591A\u4E2A ID \u6216 ID \u8303\u56F4\uFF0C\u53C2\u89C1 '/help id'\n\n/vars -start\n\t\u5217\u51FA\u5DF2\u8BC4\u4F30\u542F\u52A8\u7247\u6BB5\u4E2D\u7684\u53D8\u91CF\n\n/vars -all\n\t\u5217\u51FA\u6240\u6709\u53D8\u91CF\uFF0C\u5305\u62EC\u5DF2\u5931\u8D25\u53D8\u91CF\u3001\u5DF2\u8986\u76D6\u53D8\u91CF\u3001\u5DF2\u5220\u9664\u53D8\u91CF\u548C\u542F\u52A8\u53D8\u91CF
 
 help.methods.summary = \u5217\u51FA\u5DF2\u58F0\u660E\u65B9\u6CD5\u53CA\u5176\u7B7E\u540D
 help.methods.args = [<\u540D\u79F0\u6216 id>|-all|-start]
-help.methods =\u5217\u51FA jshell \u65B9\u6CD5\u7684\u540D\u79F0, \u53C2\u6570\u7C7B\u578B\u4EE5\u53CA\u8FD4\u56DE\u7C7B\u578B\u3002\n\n/methods\n\t\u5217\u51FA\u5F53\u524D\u6D3B\u52A8 jshell \u65B9\u6CD5\u540D\u79F0, \u53C2\u6570\u7C7B\u578B\u548C\u8FD4\u56DE\u7C7B\u578B\n\n/methods <\u540D\u79F0>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684 jshell \u65B9\u6CD5 (\u7279\u522B\u662F\u6D3B\u52A8\u65B9\u6CD5)\n\n/methods <id>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684 jshell \u65B9\u6CD5\n\n/methods <id> <id>... <\u6587\u4EF6>\n\t\u5217\u51FA\u5177\u6709\u591A\u4E2A\u6307\u5B9A\u7247\u6BB5 ID \u7684\u591A\u4E2A jshell \u65B9\u6CD5\n\n/methods <id>-<id> <file>\n\t\u5217\u51FA\u5728\u7247\u6BB5 ID \u8303\u56F4\u5185\u7684 jshell \u65B9\u6CD5\n\n/methods -start\n\t\u5217\u51FA\u81EA\u52A8\u6DFB\u52A0\u7684\u542F\u52A8 jshell \u65B9\u6CD5\n\n/methods -all\n\t\u5217\u51FA\u6240\u6709\u7247\u6BB5, \u5305\u62EC\u5DF2\u5931\u8D25\u7247\u6BB5, \u5DF2\u8986\u76D6\u7247\u6BB5, \u5DF2\u5220\u9664\u7247\u6BB5\u548C\u542F\u52A8\u7247\u6BB5
+help.methods =\u5217\u51FA\u5DF2\u8F93\u5165\u65B9\u6CD5\u7684\u540D\u79F0\u3001\u53C2\u6570\u7C7B\u578B\u548C\u8FD4\u56DE\u7C7B\u578B\u3002\n\n/methods\n\t\u5217\u51FA\u5F53\u524D\u6D3B\u52A8\u65B9\u6CD5\u7684\u540D\u79F0\u3001\u53C2\u6570\u7C7B\u578B\u548C\u8FD4\u56DE\u7C7B\u578B\n\n/methods <\u540D\u79F0>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u65B9\u6CD5\uFF08\u7279\u522B\u662F\u6D3B\u52A8\u65B9\u6CD5\uFF09\n\n/methods <id>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u65B9\u6CD5\u3002\n\t\u53EF\u4EE5\u4F7F\u7528\u4E00\u4E2A\u6216\u591A\u4E2A ID \u6216 ID \u8303\u56F4\uFF0C\u53C2\u89C1 '/help id'\n\n/methods -start\n\t\u5217\u51FA\u5DF2\u8BC4\u4F30\u542F\u52A8\u7247\u6BB5\u4E2D\u7684\u65B9\u6CD5\n\n/methods -all\n\t\u5217\u51FA\u6240\u6709\u7247\u6BB5\uFF0C\u5305\u62EC\u5931\u8D25\u7684\u7247\u6BB5\u3001\u8986\u76D6\u7684\u7247\u6BB5\u3001\u5220\u9664\u7684\u7247\u6BB5\u548C\u542F\u52A8\u7247\u6BB5
 
-help.types.summary = \u5217\u51FA\u5DF2\u58F0\u660E\u7684\u7C7B\u578B
+help.types.summary = \u5217\u51FA\u7C7B\u578B\u58F0\u660E
 help.types.args =[<\u540D\u79F0\u6216 id>|-all|-start]
-help.types =\u5217\u51FA jshell \u7C7B, \u63A5\u53E3\u548C\u679A\u4E3E\u3002\n\n/types\n\t\u5217\u51FA\u5F53\u524D\u6D3B\u52A8 jshell \u7C7B, \u63A5\u53E3\u548C\u679A\u4E3E\u3002\n\n/types <\u540D\u79F0>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684 jshell \u7C7B\u578B (\u7279\u522B\u662F\u6D3B\u52A8\u7C7B\u578B)\n\n/types <id>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684 jshell \u7C7B\u578B\n\n/types <id> <id>... <\u6587\u4EF6>\n\t\u5217\u51FA\u5177\u6709\u591A\u4E2A\u6307\u5B9A\u7247\u6BB5 ID \u7684\u591A\u4E2A jshell \u7C7B\u578B\n\n/types <id>-<id> <\u6587\u4EF6>\n\t\u5217\u51FA\u5728\u7247\u6BB5 ID \u8303\u56F4\u5185\u7684 jshell \u7C7B\u578B\n\n/types -start\n\t\u5217\u51FA\u81EA\u52A8\u6DFB\u52A0\u7684\u542F\u52A8 jshell \u7C7B\u578B\n\n/types -all\n\t\u5217\u51FA\u6240\u6709 jshell \u7C7B\u578B, \u5305\u62EC\u5DF2\u5931\u8D25, \u5DF2\u8986\u76D6, \u5DF2\u5220\u9664\u548C\u542F\u52A8\u7C7B\u578B
+help.types =\u5217\u51FA\u5DF2\u8F93\u5165\u7684\u7C7B\u548C\u63A5\u53E3\u3002\n\n/types\n\t\u5217\u51FA\u5F53\u524D\u6D3B\u52A8\u7684\u7C7B\u578B\u58F0\u660E\n\n/types <\u540D\u79F0>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u540D\u79F0\u7684\u7C7B\u578B\u58F0\u660E\uFF08\u7279\u522B\u662F\u6D3B\u52A8\u7247\u6BB5\uFF09\n\n/types <id>\n\t\u5217\u51FA\u5177\u6709\u6307\u5B9A\u7247\u6BB5 ID \u7684\u7C7B\u578B\u58F0\u660E\u3002\n\t\u53EF\u4EE5\u4F7F\u7528\u4E00\u4E2A\u6216\u591A\u4E2A ID \u6216 ID \u8303\u56F4\uFF0C\u53C2\u89C1 '/help id'\n\n/types -start\n\t\u5217\u51FA\u5DF2\u8BC4\u4F30\u542F\u52A8\u7247\u6BB5\u4E2D\u7684\u7C7B\u578B\u58F0\u660E\n\n/types -all\n\t\u5217\u51FA\u6240\u6709\u7C7B\u578B\u58F0\u660E\uFF0C\u5305\u62EC\u5DF2\u5931\u8D25\u7C7B\u578B\u58F0\u660E\u3001\u5DF2\u8986\u76D6\u7C7B\u578B\u58F0\u660E\u3001\u5DF2\u5220\u9664\u7C7B\u578B\u58F0\u660E\u548C\u542F\u52A8\u7C7B\u578B\u58F0\u660E
 
 help.imports.summary = \u5217\u51FA\u5BFC\u5165\u7684\u9879
 help.imports.args =
-help.imports =\u5217\u51FA\u5F53\u524D\u6D3B\u52A8\u7684 jshell \u5BFC\u5165\u3002
+help.imports =\u5217\u51FA\u5F53\u524D\u6D3B\u52A8\u7684\u5BFC\u5165\u3002\u8FD9\u5305\u62EC\u6765\u81EA\u542F\u52A8\u7247\u6BB5\u7684\n\u5BFC\u5165\u3002
 
-help.exit.summary = \u9000\u51FA jshell
+help.exit.summary = \u9000\u51FA jshell \u5DE5\u5177
 help.exit.args =[<integer-expression-snippet>]
-help.exit =\u9000\u51FA jshell \u5DE5\u5177\u3002\u4E0D\u4FDD\u5B58\u5DE5\u4F5C\u3002\n\u5728\u4F7F\u7528\u6B64\u547D\u4EE4\u524D\u5E94\u8BE5\u5148\u4FDD\u5B58\u4EFB\u4F55\u5DE5\u4F5C\n\n/exit\n\t\u9000\u51FA jshell \u5DE5\u5177\u3002\u9000\u51FA\u72B6\u6001\u4E3A\u96F6\u3002\n\n/exit <integer-expression-snippet>\n\t\u8BC4\u4F30\u7247\u6BB5\u3002\u5982\u679C\u7247\u6BB5\u5931\u8D25\u6216\u8005\u4E0D\u662F\u6574\u6570\u8868\u8FBE\u5F0F,\n\t\u5219\u663E\u793A\u9519\u8BEF\u3002\u5426\u5219\u9000\u51FA jshell \u5DE5\u5177, \u5E76\u5C06\n\t\u8868\u8FBE\u5F0F\u7684\u503C\u4F5C\u4E3A\u9000\u51FA\u72B6\u6001
+help.exit =\u9000\u51FA jshell \u5DE5\u5177\u3002\u4E0D\u4FDD\u5B58\u5DE5\u4F5C\u3002\n\u5728\u4F7F\u7528\u6B64\u547D\u4EE4\u524D\u5E94\u8BE5\u5148\u4FDD\u5B58\u4EFB\u4F55\u5DE5\u4F5C\n\n/exit\n\t\u9000\u51FA jshell \u5DE5\u5177\u3002\u9000\u51FA\u72B6\u6001\u4E3A\u96F6\n\n/exit <\u6574\u6570\u8868\u8FBE\u5F0F\u7247\u6BB5>\n\t\u8BC4\u4F30\u7247\u6BB5\u3002\u5982\u679C\u7247\u6BB5\u5931\u8D25\u6216\u8005\u4E0D\u662F\u6574\u6570\u8868\u8FBE\u5F0F\uFF0C\n\t\u5219\u663E\u793A\u9519\u8BEF\u3002\u5426\u5219\u9000\u51FA jshell \u5DE5\u5177\uFF0C\u5E76\u5C06\n\t\u8868\u8FBE\u5F0F\u7684\u503C\u4F5C\u4E3A\u9000\u51FA\u72B6\u6001
 
-help.reset.summary = \u91CD\u542F jshell
+help.reset.summary = \u91CD\u7F6E jshell \u5DE5\u5177
 help.reset.args = [-class-path <\u8DEF\u5F84>] [-module-path <\u8DEF\u5F84>] [-add-modules <\u6A21\u5757>]...
-help.reset =\u91CD\u7F6E jshell \u5DE5\u5177\u4EE3\u7801\u548C\u6267\u884C\u72B6\u6001:\n\t* \u6240\u6709\u8F93\u5165\u7684\u4EE3\u7801\u90FD\u5C06\u4E22\u5931\u3002\n\t* \u91CD\u65B0\u6267\u884C\u542F\u52A8\u4EE3\u7801\u3002\n\t* \u91CD\u65B0\u542F\u52A8\u6267\u884C\u72B6\u6001\u3002\n\t\u5C06\u5DE5\u5177\u8BBE\u7F6E\u4FDD\u6301\u4E3A\u901A\u8FC7\u4EE5\u4E0B\u547D\u4EE4\u6267\u884C\u7684\u8BBE\u7F6E: /set ...\n\u5728\u4F7F\u7528\u6B64\u547D\u4EE4\u524D\u5E94\u8BE5\u5148\u4FDD\u5B58\u4EFB\u4F55\u5DE5\u4F5C\u3002\n/reset \u547D\u4EE4\u63A5\u53D7\u4E0A\u4E0B\u6587\u9009\u9879, \u8BF7\u53C2\u9605:\n\n\t/help context\n
+help.reset =\u91CD\u7F6E jshell \u5DE5\u5177\u4EE3\u7801\u548C\u6267\u884C\u72B6\u6001\uFF1A\n\t* \u6240\u6709\u8F93\u5165\u7684\u4EE3\u7801\u4E22\u5931\n\t* \u91CD\u65B0\u542F\u52A8\u6267\u884C\u72B6\u6001\n\t* \u91CD\u65B0\u6267\u884C\u542F\u52A8\u4EE3\u7801\n\u5728\u4F7F\u7528\u6B64\u547D\u4EE4\u524D\u5E94\u8BE5\u5148\u4FDD\u5B58\u4EFB\u4F55\u5DE5\u4F5C\u3002\n/reset \u547D\u4EE4\u63A5\u53D7\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\uFF0C\u53C2\u89C1\uFF1A\n\n\t/help context\n
 
 help.reload.summary = \u91CD\u7F6E\u548C\u91CD\u653E\u76F8\u5173\u5386\u53F2\u8BB0\u5F55 -- \u5F53\u524D\u5386\u53F2\u8BB0\u5F55\u6216\u4E0A\u4E00\u4E2A\u5386\u53F2\u8BB0\u5F55 (-restore)
 help.reload.args = [-restore] [-quiet] [-class-path <\u8DEF\u5F84>] [-module-path <\u8DEF\u5F84>]...
-help.reload =\u91CD\u7F6E jshell \u5DE5\u5177\u4EE3\u7801\u548C\u6267\u884C\u72B6\u6001, \u7136\u540E\u6309\u7167\u5404\u6709\u6548\u7247\u6BB5\u548C\n\u4EFB\u4F55 /drop \u547D\u4EE4\u7684\u8F93\u5165\u987A\u5E8F\u91CD\u653E\u5B83\u4EEC\u3002\n\n/reload\n\t\u91CD\u7F6E\u548C\u91CD\u653E\u81EA\u8FDB\u5165 jshell \u4EE5\u6765\u7684\u6709\u6548\u5386\u53F2\u8BB0\u5F55, \n\t\u6216\u8005\u6267\u884C /reset \u6216 /reload \u547D\u4EE4\u4E2D\u6700\u65B0\u7684\u90A3\u4E2A\n\t\u547D\u4EE4\u3002\n\n/reload -restore\n\t\u91CD\u7F6E\u5E76\u91CD\u653E\u4E0A\u4E00\u6B21\u8FDB\u5165 jshell \u4E0E\u6700\u8FD1\u8FDB\u5165 jshell\n\t\u4E4B\u95F4\u7684\u6709\u6548\u5386\u53F2\u8BB0\u5F55, \u6216\u8005\u6267\u884C /reset, /reload\n\t\u6216 /env \u547D\u4EE4\u3002\u8FD9\u8FDB\u800C\u53EF\u7528\u4E8E\u8FD8\u539F\u4E0A\u4E00\u4E2A\n\tjshell \u5DE5\u5177\u4F1A\u8BDD\u3002\n\n/reload [-restore] -quiet\n\t\u4F7F\u7528 '-quiet' \u53C2\u6570\u65F6, \u4E0D\u663E\u793A\u91CD\u653E\u3002\u5C06\u663E\u793A\u9519\u8BEF\u3002\n\n\u4E0A\u9762\u6BCF\u4E2A\u547D\u4EE4\u90FD\u63A5\u53D7\u4E0A\u4E0B\u6587\u9009\u9879, \u8BF7\u53C2\u9605:\n\n\t/help context\n\n\u4F8B\u5982:\n\n\t/reload -add-modules com.greetings -restore
+help.reload =\u91CD\u7F6E jshell \u5DE5\u5177\u4EE3\u7801\u548C\u6267\u884C\u72B6\u6001\uFF0C\u7136\u540E\u6309\u7167\u5404\u6709\u6548\u7247\u6BB5\u548C\n\u4EFB\u4F55 /drop \u547D\u4EE4\u7684\u8F93\u5165\u987A\u5E8F\u91CD\u653E\u5B83\u4EEC\u3002\n\n/reload\n\t\u91CD\u7F6E\u548C\u91CD\u653E\u81EA\u8FDB\u5165 jshell \u5DE5\u5177\u4EE5\u6765\u7684\u6709\u6548\u5386\u53F2\u8BB0\u5F55\uFF0C\n\t\u6216\u8005\u6267\u884C /reset \u6216 /reload \u547D\u4EE4\u4E2D\u6700\u65B0\u7684\u90A3\u4E2A\n\t\u547D\u4EE4\n\n/reload -restore\n\t\u91CD\u7F6E\u5E76\u91CD\u653E\u4E0A\u4E00\u6B21\u8FDB\u5165 jshell \u5DE5\u5177\u4E0E\u6700\u8FD1\u8FDB\u5165 jshell\n\t\u5DE5\u5177\u4E4B\u95F4\u7684\u6709\u6548\u5386\u53F2\u8BB0\u5F55\uFF0C\u6216\u8005\u6267\u884C /reset\u3001/reload\n\t\u6216 /env \u547D\u4EE4\u3002\u8FD9\u8FDB\u800C\u53EF\u7528\u4E8E\u8FD8\u539F\u4E0A\u4E00\u4E2A\n\tjshell \u5DE5\u5177\u4F1A\u8BDD\n\n/reload [-restore] -quiet\n\t\u4F7F\u7528 '-quiet' \u53C2\u6570\u65F6\uFF0C\u4E0D\u663E\u793A\u91CD\u653E\uFF0C\u4F46\u5C06\u663E\u793A\n\t\u6240\u6709\u9519\u8BEF\n\n\u4E0A\u9762\u6BCF\u4E2A\u547D\u4EE4\u90FD\u63A5\u53D7\u4E0A\u4E0B\u6587\u9009\u9879\uFF0C\u53C2\u89C1\uFF1A\n\n\t/help context\n\n\u4F8B\u5982\uFF1A\n\n\t/reload -add-modules com.greetings -restore
 
 help.env.summary = \u67E5\u770B\u6216\u66F4\u6539\u8BC4\u4F30\u4E0A\u4E0B\u6587
 help.env.args = [-class-path <\u8DEF\u5F84>] [-module-path <\u8DEF\u5F84>] [-add-modules <\u6A21\u5757>] ...
-help.env =\u67E5\u770B\u6216\u66F4\u6539\u8BC4\u4F30\u4E0A\u4E0B\u6587\u3002\u8BC4\u4F30\u4E0A\u4E0B\u6587\u662F\u7C7B\u8DEF\u5F84, \n\u6A21\u5757\u8DEF\u5F84\u7B49\u7B49\u3002\n/env\n\t\u663E\u793A\u4F5C\u4E3A\u4E0A\u4E0B\u6587\u9009\u9879\u663E\u793A\u7684\u8BC4\u4F30\u4E0A\u4E0B\u6587\u3002\n\n/env [-class-path <\u8DEF\u5F84>] [-module-path <\u8DEF\u5F84>] [-add-modules <\u6A21\u5757>] ...\n\t\u5728\u81F3\u5C11\u8BBE\u7F6E\u4E00\u4E2A\u9009\u9879\u7684\u60C5\u51B5\u4E0B, \u8BBE\u7F6E\u8BC4\u4F30\u4E0A\u4E0B\u6587\u3002\u5982\u679C\n\t\u5DF2\u5B9A\u4E49\u7247\u6BB5, \u5219\u5C06\u4F7F\u7528\u65B0\u8BC4\u4F30\u4E0A\u4E0B\u6587\u91CD\u7F6E\n\t\u6267\u884C\u72B6\u6001, \u5E76\u4E14\u5C06\u91CD\u653E\u7247\u6BB5 -- \u4E0D\u663E\u793A\n\t\u91CD\u653E, \u4F46\u662F\u5C06\u663E\u793A\u9519\u8BEF\u3002\u8FD9\u7B49\u540C\u4E8E: /reload -quiet\n\t\u6709\u5173\u4E0A\u4E0B\u6587\u9009\u9879\u7684\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605:\n\n\t\t/help context\n\n\t\u4F8B\u5982:\n\n\t\t/env -add-modules com.greetings
+help.env =\u67E5\u770B\u6216\u66F4\u6539\u8BC4\u4F30\u4E0A\u4E0B\u6587\u3002\u8BC4\u4F30\u4E0A\u4E0B\u6587\u662F\u7C7B\u8DEF\u5F84\uFF0C\n\u6A21\u5757\u8DEF\u5F84\u7B49\u7B49\u3002\n\n/env\n\t\u663E\u793A\u4F5C\u4E3A\u4E0A\u4E0B\u6587\u9009\u9879\u663E\u793A\u7684\u8BC4\u4F30\u4E0A\u4E0B\u6587\n\n/env [-class-path <\u8DEF\u5F84>] [-module-path <\u8DEF\u5F84>] [-add-modules <\u6A21\u5757>] ...\n\t\u5728\u81F3\u5C11\u8BBE\u7F6E\u4E00\u4E2A\u9009\u9879\u7684\u60C5\u51B5\u4E0B\uFF0C\u8BBE\u7F6E\u8BC4\u4F30\u4E0A\u4E0B\u6587\u3002\u5982\u679C\n\t\u5DF2\u5B9A\u4E49\u7247\u6BB5\uFF0C\u5219\u5C06\u4F7F\u7528\u65B0\u8BC4\u4F30\u4E0A\u4E0B\u6587\u91CD\u7F6E\n\t\u6267\u884C\u72B6\u6001\uFF0C\u5E76\u4E14\u5C06\u91CD\u653E\u7247\u6BB5 -- \u4E0D\u663E\u793A\n\t\u91CD\u653E\uFF0C\u4F46\u662F\u5C06\u663E\u793A\u6240\u6709\u9519\u8BEF\u3002\u8FD9\u7B49\u540C\u4E8E\uFF1A\n\n\t\t/reload -quiet ...\n\n\t\u6709\u5173\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u89C1\uFF1A\n\n\t/help context\n\n\u4F8B\u5982\uFF1A\n\n\t/env -add-modules com.greetings
 
 help.history.summary = \u60A8\u952E\u5165\u7684\u5185\u5BB9\u7684\u5386\u53F2\u8BB0\u5F55
 help.history.args =
-help.history =\u663E\u793A\u81EA\u542F\u52A8\u6B64 jshell \u4EE5\u6765\u8F93\u5165\u7684\u7247\u6BB5\u548C\u547D\u4EE4\u7684\u5386\u53F2\u8BB0\u5F55\u3002
+help.history =\u663E\u793A\u81EA\u542F\u52A8\u6B64 jshell \u5DE5\u5177\u4EE5\u6765\u8F93\u5165\u7684\u7247\u6BB5\u548C\u547D\u4EE4\u7684\u5386\u53F2\u8BB0\u5F55\u3002
 
-help.debug.summary = \u5207\u6362 jshell \u7684\u8C03\u8BD5
+help.debug.summary = \u5207\u6362 jshell \u5DE5\u5177\u7684\u8C03\u8BD5
 help.debug.args = [0][r][g][f][c][d][e]
-help.debug =\u663E\u793A jshell \u5B9E\u73B0\u7684\u8C03\u8BD5\u4FE1\u606F\n0: \u7981\u7528\u8C03\u8BD5\nr: \u542F\u7528\u5DE5\u5177\u7EA7\u522B\u8C03\u8BD5\ng: \u542F\u7528\u5E38\u89C4\u8C03\u8BD5\nf: \u542F\u7528\u6587\u4EF6\u7BA1\u7406\u5668\u8C03\u8BD5\nc: \u542F\u7528\u8F93\u5165\u63D0\u793A\u5206\u6790\u8C03\u8BD5\nd: \u542F\u7528\u88AB\u4F9D\u8D56\u5BF9\u8C61\u8C03\u8BD5\ne: \u542F\u7528\u4E8B\u4EF6\u8C03\u8BD5
+help.debug =\u663E\u793A jshell \u5DE5\u5177\u5B9E\u73B0\u7684\u8C03\u8BD5\u4FE1\u606F\n0\uFF1A\u7981\u7528\u8C03\u8BD5\nr\uFF1A\u542F\u7528\u5DE5\u5177\u7EA7\u522B\u8C03\u8BD5\ng\uFF1A\u542F\u7528\u5E38\u89C4\u8C03\u8BD5\nf\uFF1A\u542F\u7528\u6587\u4EF6\u7BA1\u7406\u5668\u8C03\u8BD5\nc\uFF1A\u542F\u7528\u8F93\u5165\u63D0\u793A\u5206\u6790\u8C03\u8BD5\nd\uFF1A\u542F\u7528\u88AB\u4F9D\u8D56\u5BF9\u8C61\u8C03\u8BD5\ne\uFF1A\u542F\u7528\u4E8B\u4EF6\u8C03\u8BD5
 
-help.help.summary = \u83B7\u53D6 jshell \u7684\u76F8\u5173\u4FE1\u606F
+help.help.summary = \u83B7\u53D6\u6709\u5173\u4F7F\u7528 jshell \u5DE5\u5177\u7684\u4FE1\u606F
 help.help.args = [<command>|<subject>]
-help.help =\u663E\u793A\u6709\u5173 jshell \u7684\u4FE1\u606F\u3002\n/help\n\t\u5217\u51FA jshell \u547D\u4EE4\u548C\u5E2E\u52A9\u4E3B\u9898\u3002\n\n/help <\u547D\u4EE4>\n\t\u663E\u793A\u6709\u5173\u6307\u5B9A\u547D\u4EE4\u7684\u4FE1\u606F\u3002\u5FC5\u987B\u5305\u542B\u659C\u6760\u3002\n\t\u53EA\u9700\u8981\u547D\u4EE4\u7684\u524D\u51E0\u4E2A\u5B57\u6BCD -- \u5982\u679C\u6709\u591A\u4E2A\u5339\u914D\u9879,\n\t\u5219\u5C06\u663E\u793A\u6240\u6709\u5B57\u6BCD\u3002\u793A\u4F8B: /help /li\n\n/help <\u4E3B\u9898>\n\t\u663E\u793A\u6709\u5173\u6307\u5B9A\u5E2E\u52A9\u4E3B\u9898\u7684\u4FE1\u606F\u3002\u793A\u4F8B: /help intro
+help.help =\u663E\u793A\u6709\u5173\u4F7F\u7528 jshell \u5DE5\u5177\u7684\u4FE1\u606F\u3002\n/help\n\t\u5217\u51FA jshell \u5DE5\u5177\u547D\u4EE4\u548C\u5E2E\u52A9\u4E3B\u9898\n\n/help <\u547D\u4EE4>\n\t\u663E\u793A\u6709\u5173\u6307\u5B9A\u547D\u4EE4\u7684\u4FE1\u606F\u3002\u5FC5\u987B\u5305\u542B\u659C\u6760\u3002\n\t\u53EA\u9700\u8981\u547D\u4EE4\u7684\u524D\u51E0\u4E2A\u5B57\u6BCD -- \u5982\u679C\u6709\u591A\u4E2A\u5339\u914D\u9879\uFF0C\n\t\u5219\u5C06\u663E\u793A\u6240\u6709\u5B57\u6BCD\u3002\u793A\u4F8B\uFF1A/help /li\n\n/help <\u4E3B\u9898>\n\t\u663E\u793A\u6709\u5173\u6307\u5B9A\u5E2E\u52A9\u4E3B\u9898\u7684\u4FE1\u606F\u3002\u793A\u4F8B\uFF1A/help intro
 
-help.set.summary = \u8BBE\u7F6E jshell \u914D\u7F6E\u4FE1\u606F
+help.set.summary = \u8BBE\u7F6E\u914D\u7F6E\u4FE1\u606F
 help.set.args = editor|start|feedback|mode|prompt|truncation|format ...
-help.set =\u8BBE\u7F6E jshell \u914D\u7F6E\u4FE1\u606F, \u5305\u62EC:\n\u8981\u4F7F\u7528\u7684\u5916\u90E8\u7F16\u8F91\u5668, \u8981\u4F7F\u7528\u7684\u542F\u52A8\u5B9A\u4E49, \u65B0\u7684\u53CD\u9988\u6A21\u5F0F,\n\u547D\u4EE4\u63D0\u793A\u7B26, \u8981\u4F7F\u7528\u7684\u53CD\u9988\u6A21\u5F0F\u6216\u8F93\u51FA\u7684\u683C\u5F0F\u3002\n\n/set editor [-wait] <\u547D\u4EE4> <\u53EF\u9009\u53C2\u6570>...\n\t\u6307\u5B9A\u8981\u4E3A /edit \u547D\u4EE4\u542F\u52A8\u7684\u547D\u4EE4\u3002\n\t<\u547D\u4EE4> \u662F\u4E0E\u64CD\u4F5C\u7CFB\u7EDF\u76F8\u5173\u7684\u5B57\u7B26\u4E32\u3002\n\n/set start <\u6587\u4EF6>\n\t\u6307\u5B9A <\u6587\u4EF6> \u7684\u5185\u5BB9\u5C06\u6210\u4E3A\u9ED8\u8BA4\u542F\u52A8\u7247\u6BB5\u548C\u547D\u4EE4\u3002\n\n/set feedback <\u6A21\u5F0F>\n\t\u8BBE\u7F6E\u7528\u4E8E\u63CF\u8FF0\u4E3A\u6240\u8F93\u5165\u7247\u6BB5\u548C\u547D\u4EE4\u663E\u793A\u7684\u53CD\u9988\u7684\u53CD\u9988\u6A21\u5F0F\u3002\n\n/set mode <\u6A21\u5F0F> [<\u65E7\u6A21\u5F0F>] -command|-quiet|-delete\n\t\u521B\u5EFA\u6216\u66F4\u65B0\u7528\u6237\u5B9A\u4E49\u7684\u53CD\u9988\u6A21\u5F0F, \u53EF\u4EE5\u9009\u62E9\u4ECE\u73B0\u6709\u6A21\u5F0F\u590D\u5236\u3002\n\n/set prompt <\u6A21\u5F0F> "<\u63D0\u793A>" "<\u66F4\u591A\u63D0\u793A>"\n\t\u8BBE\u7F6E\u4E3A\u7ED9\u5B9A\u53CD\u9988\u6A21\u5F0F\u663E\u793A\u7684\u63D0\u793A\u7B26\u3002\n\n/set truncation <\u6A21\u5F0F> <\u957F\u5EA6> <\u9009\u62E9\u5668>...\n\t\u8BBE\u7F6E\u663E\u793A\u503C\u7684\u6700\u5927\u957F\u5EA6\u3002\n\n/set format <\u6A21\u5F0F> <\u5B57\u6BB5> "<\u683C\u5F0F>" <\u9009\u62E9\u5668>...\n\t\u901A\u8FC7\u8BBE\u7F6E\u5F53\u9009\u62E9\u5668\u5339\u914D\u65F6\u5B57\u6BB5\u7684\u683C\u5F0F\u6765\u914D\u7F6E\u53CD\u9988\u6A21\u5F0F\u3002\n\n/set\n\t\u4EE5 /set \u547D\u4EE4\u5F62\u5F0F\u663E\u793A\u7F16\u8F91\u5668, \u542F\u52A8\u548C\u53CD\u9988\u8BBE\u7F6E\u3002\n\t\u8981\u663E\u793A\u4EE5\u4E0A\u4EFB\u610F\u9879\u7684\u8BBE\u7F6E, \u8BF7\u5FFD\u7565 set \u503C\u3002\n\n\u8981\u83B7\u53D6\u6709\u5173\u5176\u4E2D\u4E00\u4E2A\u683C\u5F0F\u7684\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u5BF9\u6307\u5B9A\u7684\u683C\u5F0F\u4F7F\u7528 /help\u3002\n\u4F8B\u5982:   /help /set format
+help.set =\u8BBE\u7F6E jshell \u5DE5\u5177\u914D\u7F6E\u4FE1\u606F\uFF0C\u5305\u62EC\uFF1A\n\u8981\u4F7F\u7528\u7684\u5916\u90E8\u7F16\u8F91\u5668\u3001\u8981\u4F7F\u7528\u7684\u542F\u52A8\u5B9A\u4E49\u3001\u65B0\u7684\u53CD\u9988\u6A21\u5F0F\u3001\n\u547D\u4EE4\u63D0\u793A\u7B26\u3001\u8981\u4F7F\u7528\u7684\u53CD\u9988\u6A21\u5F0F\u6216\u8F93\u51FA\u7684\u683C\u5F0F\u3002\n\n/set editor [-wait] <\u547D\u4EE4> <\u53EF\u9009\u53C2\u6570>...\n\t\u6307\u5B9A\u8981\u4E3A /edit \u547D\u4EE4\u542F\u52A8\u7684\u547D\u4EE4\u3002\n\t<\u547D\u4EE4> \u662F\u4E0E\u64CD\u4F5C\u7CFB\u7EDF\u76F8\u5173\u7684\u5B57\u7B26\u4E32\n\n/set start <\u6587\u4EF6>\n\t\u6307\u5B9A <\u6587\u4EF6> \u7684\u5185\u5BB9\u5C06\u6210\u4E3A\u9ED8\u8BA4\u542F\u52A8\u7247\u6BB5\u548C\u547D\u4EE4\n\n/set feedback <\u6A21\u5F0F>\n\t\u8BBE\u7F6E\u7528\u4E8E\u63CF\u8FF0\u4E3A\u6240\u8F93\u5165\u7247\u6BB5\u548C\u547D\u4EE4\u663E\u793A\u7684\u53CD\u9988\u7684\u53CD\u9988\u6A21\u5F0F\n\n/set mode <\u6A21\u5F0F> [<\u65E7\u6A21\u5F0F>] -command|-quiet|-delete\n\t\u521B\u5EFA\u6216\u66F4\u65B0\u7528\u6237\u5B9A\u4E49\u7684\u53CD\u9988\u6A21\u5F0F\uFF0C\u53EF\u4EE5\u9009\u62E9\u4ECE\u73B0\u6709\u6A21\u5F0F\u590D\u5236\n\n/set prompt <\u6A21\u5F0F> "<\u63D0\u793A>" "<\u66F4\u591A\u63D0\u793A>"\n\t\u8BBE\u7F6E\u4E3A\u7ED9\u5B9A\u53CD\u9988\u6A21\u5F0F\u663E\u793A\u7684\u63D0\u793A\u7B26\n\n/set truncation <\u6A21\u5F0F> <\u957F\u5EA6> <\u9009\u62E9\u5668>...\n\t\u8BBE\u7F6E\u663E\u793A\u503C\u7684\u6700\u5927\u957F\u5EA6\n\n/set format <\u6A21\u5F0F> <\u5B57\u6BB5> "<\u683C\u5F0F>" <\u9009\u62E9\u5668>...\n\t\u901A\u8FC7\u8BBE\u7F6E\u5F53\u9009\u62E9\u5668\u5339\u914D\u65F6\u5B57\u6BB5\u7684\u683C\u5F0F\u6765\u914D\u7F6E\u53CD\u9988\u6A21\u5F0F\n\n/set\n\t\u4EE5 /set \u547D\u4EE4\u5F62\u5F0F\u663E\u793A\u7F16\u8F91\u5668\uFF0C\u542F\u52A8\u548C\u53CD\u9988\u8BBE\u7F6E\u3002\n\t\u8981\u663E\u793A\u4EE5\u4E0A\u4EFB\u610F\u9879\u7684\u8BBE\u7F6E\uFF0C\u8BF7\u5FFD\u7565 set \u503C\n\n\u8981\u83B7\u53D6\u6709\u5173\u5176\u4E2D\u4E00\u4E2A\u683C\u5F0F\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u5BF9\u6307\u5B9A\u7684\u683C\u5F0F\u4F7F\u7528 /help\u3002\n\u4F8B\u5982\uFF1A   /help /set format
 
-help.quest.summary = \u83B7\u53D6 jshell \u7684\u76F8\u5173\u4FE1\u606F
+help.quest.summary = \u83B7\u53D6\u6709\u5173\u4F7F\u7528 jshell \u5DE5\u5177\u7684\u4FE1\u606F
 help.quest.args = [<command>|<subject>]
-help.quest =\u663E\u793A\u6709\u5173 jshell \u7684\u4FE1\u606F (\u5BF9 /help \u4F7F\u7528\u7F29\u5199\u5F62\u5F0F)\u3002\n/?\n\t\u663E\u793A\u547D\u4EE4\u548C\u5E2E\u52A9\u4E3B\u9898\u7684\u5217\u8868\u3002\n/? <\u547D\u4EE4>\n\t\u663E\u793A\u6709\u5173\u6307\u5B9A\u547D\u4EE4\u7684\u4FE1\u606F\u3002\u5FC5\u987B\u5305\u542B\u659C\u6760\u3002\n\t\u53EA\u9700\u8981\u547D\u4EE4\u7684\u524D\u51E0\u4E2A\u5B57\u6BCD -- \u5982\u679C\u6709\u591A\u4E2A\n\t\u5339\u914D\u9879, \u5219\u5C06\u663E\u793A\u6240\u6709\u5B57\u6BCD\u3002\u793A\u4F8B: /? /li\n/? <\u4E3B\u9898>\n\t\u663E\u793A\u6709\u5173\u6307\u5B9A\u5E2E\u52A9\u4E3B\u9898\u7684\u4FE1\u606F\u3002\u793A\u4F8B: /? intro
+help.quest =\u663E\u793A\u6709\u5173\u4F7F\u7528 jshell