Mark ab/7061308 as merged in stage.

Bug: 180401296
Merged-In: Ie8dbc9c9de712ffc31445c1be7bfb1ce66f61fcf
Change-Id: I0700e124156e60be4dd0dc70a15905780aad2011
diff --git a/Android.bp b/Android.bp
index 722afd2..db62fa7 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,3 +1,42 @@
+package {
+    default_applicable_licenses: ["external_ImageMagick_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+//
+// large-scale-change included anything that looked like it might be a license
+// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
+//
+// Please consider removing redundant or irrelevant files from 'license_text:'.
+// See: http://go/android-license-faq
+license {
+    name: "external_ImageMagick_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-MIT",
+        "legacy_notice",
+        "legacy_unencumbered",
+    ],
+    license_text: [
+        "LICENSE",
+        "NOTICE",
+    ],
+}
+
 cc_library_headers {
     name: "Magick_headers",
     export_include_dirs: ["."],
diff --git a/ChangeLog b/ChangeLog
index 4a21e9a..d5d8e34 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,93 @@
-2020-11-30  7.0.10-46  <quetzlzacatenango@image...>
-  * Release ImageMagick version 7.0.10-46 GIT revision 17...
+2021-01-05  7.0.10-56  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-56 GIT revision 18192:2fb74f026:20210105
 
-2020-11-30  7.0.10-45  <quetzlzacatenango@image...>
+2021-01-05  7.0.10-56  <quetzlzacatenango@image...>
+  * Fix rounding error for CSS colors (reference
+    https://github.com/ImageMagick/ImageMagick6/issues/129).
+
+2021-01-03  7.0.10-55  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-55 GIT revision 18181:636ebf7ba:20210103
+
+2021-01-04  7.0.10-55  <quetzlzacatenango@image...>
+  * revert changes to the default max width/height of image.
+
+2021-01-02  7.0.10-54  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-54 GIT revision 18159:24fabe7e2:20210102
+
+2020-12-27  7.0.10-54  Dirk Lemstra <dirk@lem.....org>
+  * replaced jxl coder with an implementation that uses the jpeg-xl reference
+    library.
+  * added -define trim:edges=(north,east,south,west) that can be used to
+    trim a single or multiple edges.
+
+2020-12-25  7.0.10-54  <quetzlzacatenango@image...>
+  * enable reading of a certain grayscale TIFF image.
+  * support HEIC depth masks (reference
+    https://github.com/ImageMagick/ImageMagick/discussions/3040).
+  * validate pixel cache offsets (reference
+    https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=29039).
+
+2020-12-24  7.0.10-53  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-53 GIT revision 18083:3b141f557:20201224
+
+2020-12-20  7.0.10-53  <quetzlzacatenango@image...>
+  * CSS colors no longer require commas.
+  * eliminate possible arthimetic overflow (reference
+    https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28849)
+  * support display-p3, Adobe-98, and Pro-photo colorspaces
+  * read/write 1024 colors Sixel images (reference
+    https://github.com/ImageMagick/ImageMagick/discussions/3018).
+
+2020-12-19  7.0.10-52  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-52 GIT revision 18057:1f5bab30b:20201219
+
+2020-12-19  7.0.10-52  <quetzlzacatenango@image...>
+  * return alpha bytes with stream utility (reference
+    https://github.com/ImageMagick/ImageMagick/discussions/2862).
+  * percentage -border in x no longer adds one pixel border in y (reference
+    https://github.com/ImageMagick/ImageMagick/issues/2978).
+
+2020-12-18  7.0.10-51  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-51 GIT revision 18052:475508769:20201218
+
+2020-12-17  7.0.10-51  <quetzlzacatenango@image...>
+  * reduce time to identify PDF/PS/XPS/PCL image width/height (reference
+    https://github.com/ImageMagick/ImageMagick/discussions/2993).
+
+2020-12-16  7.0.10-50  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-50 GIT revision 18046:83c162886:20201216
+
+2020-12-15  7.0.10-50  <quetzlzacatenango@image...>
+  * revert patch to ready gray alpha TIFF image.
+
+2020-12-14  7.0.10-49  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-49 GIT revision 18040:7976abf6e:20201214
+
+2020-12-13  7.0.10-49  <quetzlzacatenango@image...>
+  * correct previous patch to read planar RGB TIFF images.
+
+2020-12-10  7.0.10-48  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-48 GIT revision 18026:4646e5fd1:20201210
+
+2020-12-09  7.0.10-48  <quetzlzacatenango@image...>
+  * Repair unit test failures (reference
+    https://github.com/ImageMagick/ImageMagick/issues/2959).
+
+2020-12-09  7.0.10-47  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-47 GIT revision 18020:6f1ee6104:20201209
+
+2020-12-06  7.0.10-47  <quetzlzacatenango@image...>
+  * support YAML image format.
+  * use generic TIFF read method for LZW-compressed strips (reference
+    https://github.com/ImageMagick/ImageMagick/discussions/2935).
+
+2020-12-05  7.0.10-46  <quetzlzacatenango@image...>
+  * Release ImageMagick version 7.0.10-46 GIT revision 18001:7c75b33a1:20201205
+
+2020-11-30  7.0.10-46  <quetzlzacatenango@image...>
   * possible TIFF related-heap buffer overflow (alert & POC by Hardik Shah).
+  * set default system font in policy.xml configuration file.
+  * support portable float map format 16-bit half.
 
 2020-11-30  7.0.10-45  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.10-45 GIT revision 17972:6c0cb7f72:20201130
diff --git a/LICENSE b/LICENSE
index 206c83b..da7a4f9 100644
--- a/LICENSE
+++ b/LICENSE
@@ -38,7 +38,7 @@
 
 The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:
 
-Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
+Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.
 
 1. Definitions.
 
diff --git a/METADATA b/METADATA
index 8443205..ba44913 100644
--- a/METADATA
+++ b/METADATA
@@ -9,11 +9,11 @@
     type: GIT
     value: "https://github.com/ImageMagick/ImageMagick.git"
   }
-  version: "0e421edad2e6bc59894718fef2c93baadc0dfb11"
+  version: "0d207271d7c4ff338cbba8e82ad6ad62e6c9c780"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2020
-    month: 11
-    day: 30
+    year: 2021
+    month: 1
+    day: 5
   }
 }
diff --git a/Magick++/Android.bp b/Magick++/Android.bp
index 0642099..918ebbb 100644
--- a/Magick++/Android.bp
+++ b/Magick++/Android.bp
@@ -12,6 +12,23 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    default_applicable_licenses: ["external_ImageMagick_Magick++_license"],
+}
+
+// Added automatically by a large-scale-change
+// See: http://go/android-license-faq
+license {
+    name: "external_ImageMagick_Magick++_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-MIT",
+    ],
+    license_text: [
+        "LICENSE",
+    ],
+}
+
 cc_library_static {
     name: "Magick++",
 
diff --git a/Magick++/fuzz/build_fuzzers.sh b/Magick++/fuzz/build_fuzzers.sh
index aefbeef..29e5e3a 100644
--- a/Magick++/fuzz/build_fuzzers.sh
+++ b/Magick++/fuzz/build_fuzzers.sh
@@ -1,6 +1,6 @@
 #!/bin/bash -eu
 
-MAGICK_COMPILER_FLAGS="$MAGICK_COMPILER_FLAGS -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16"
+MAGICK_COMPILER_FLAGS="$MAGICK_COMPILER_FLAGS -fuse-ld=lld -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16"
 
 $MAGICK_COMPILER $MAGICK_COMPILER_FLAGS -std=c++11 -I$MAGICK_INCLUDE "$MAGICK_SRC/encoder_list.cc" \
     -o "$MAGICK_SRC/encoder_list" $MAGICK_LIBS_NO_FUZZ
@@ -40,7 +40,7 @@
          $encoder_flags $MAGICK_LIBS
 
     echo -e "[libfuzzer]\nclose_fd_mask=3" > "$MAGICK_OUTPUT/encoder_${encoder,,}_fuzzer.options"
-    
+
     if [ -f "$MAGICK_SRC/dictionaries/${encoder,,}.dict" ]; then
         cp "$MAGICK_SRC/dictionaries/${encoder,,}.dict" "$MAGICK_OUTPUT/ping_${encoder,,}_fuzzer.dict"
         cp "$MAGICK_SRC/dictionaries/${encoder,,}.dict" "$MAGICK_OUTPUT/encoder_${encoder,,}_fuzzer.dict"
diff --git a/Magick++/fuzz/encoder_fuzzer.cc b/Magick++/fuzz/encoder_fuzzer.cc
index b29d772..5edcdbb 100644
--- a/Magick++/fuzz/encoder_fuzzer.cc
+++ b/Magick++/fuzz/encoder_fuzzer.cc
@@ -1,4 +1,5 @@
 #include <cstdint>
+#include <string.h>
 
 #include <Magick++/Blob.h>
 #include <Magick++/Image.h>
@@ -19,14 +20,14 @@
 
 static ssize_t EncoderInitializer(const uint8_t *Data, const size_t Size, Magick::Image &image)
 {
-  if (FUZZ_ENCODER_INITIALIZER == "interlace") {
+  if (strcmp(FUZZ_ENCODER_INITIALIZER, "interlace") == 0) {
     Magick::InterlaceType interlace = (Magick::InterlaceType) *reinterpret_cast<const char *>(Data);
     if (interlace > Magick::PNGInterlace)
       return -1;
     image.interlaceType(interlace);
     return 1;
   }
-  if (FUZZ_ENCODER_INITIALIZER == "png") {
+  if (strcmp(FUZZ_ENCODER_INITIALIZER, "png") == 0) {
     image.defineValue("png", "ignore-crc", "1");
   }
 
diff --git a/MagickCore/Android.bp b/MagickCore/Android.bp
index c52dfda..c0f3ae9 100644
--- a/MagickCore/Android.bp
+++ b/MagickCore/Android.bp
@@ -12,6 +12,17 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "external_ImageMagick_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    //   SPDX-license-identifier-MIT
+    //   legacy_notice
+    default_applicable_licenses: ["external_ImageMagick_license"],
+}
+
 cc_library_static {
     name: "MagickCore",
 
diff --git a/MagickCore/MagickCore.h b/MagickCore/MagickCore.h
index 10413a0..25f30d6 100644
--- a/MagickCore/MagickCore.h
+++ b/MagickCore/MagickCore.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/Makefile.am b/MagickCore/Makefile.am
index 5b5a2f6..a7dbdc5 100644
--- a/MagickCore/Makefile.am
+++ b/MagickCore/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/accelerate-kernels-private.h b/MagickCore/accelerate-kernels-private.h
index a7ffa66..e2f8cb4 100644
--- a/MagickCore/accelerate-kernels-private.h
+++ b/MagickCore/accelerate-kernels-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/accelerate-private.h b/MagickCore/accelerate-private.h
index 36b2c7e..0e9aff7 100644
--- a/MagickCore/accelerate-private.h
+++ b/MagickCore/accelerate-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/accelerate.c b/MagickCore/accelerate.c
index 334e3ff..ffaeada 100644
--- a/MagickCore/accelerate.c
+++ b/MagickCore/accelerate.c
@@ -21,7 +21,7 @@
 %                                April 2016                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -330,7 +330,7 @@
     colorspace,
     method;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1000,7 +1000,7 @@
   PixelPacket
     *stretch_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2321,7 +2321,7 @@
   PixelPacket
     *equalize_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3398,7 +3398,7 @@
   MagickSizeType
     length;
 
-  register ssize_t
+  ssize_t
     i;
 
   void
diff --git a/MagickCore/animate-private.h b/MagickCore/animate-private.h
index 770b02a..24d887c 100644
--- a/MagickCore/animate-private.h
+++ b/MagickCore/animate-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index 94128e0..d2388f0 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -17,7 +17,7 @@
 %                                July 1992                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -404,7 +404,7 @@
       int
         number_files;
 
-      register int
+      int
         i;
 
       static char
@@ -753,7 +753,7 @@
   RectangleInfo
     geometry_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1340,10 +1340,10 @@
   RectangleInfo
     geometry_info;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1436,7 +1436,7 @@
     }
   else
     {
-      register Image
+      Image
         *p;
 
       /*
diff --git a/MagickCore/animate.h b/MagickCore/animate.h
index ff30745..a4fb73d 100644
--- a/MagickCore/animate.h
+++ b/MagickCore/animate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/annotate-private.h b/MagickCore/annotate-private.h
index 4cc19c6..55ae44c 100644
--- a/MagickCore/annotate-private.h
+++ b/MagickCore/annotate-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index da950af..e5c4c26 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -68,6 +68,7 @@
 #include "MagickCore/quantum.h"
 #include "MagickCore/quantum-private.h"
 #include "MagickCore/pixel-accessor.h"
+#include "MagickCore/policy.h"
 #include "MagickCore/property.h"
 #include "MagickCore/resource_.h"
 #include "MagickCore/semaphore.h"
@@ -248,7 +249,7 @@
   RectangleInfo
     geometry;
 
-  register ssize_t
+  ssize_t
     i;
 
   TypeMetric
@@ -594,12 +595,12 @@
   MagickBooleanType
     status;
 
-  register char
+  char
     *p,
     *q,
     *s;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -733,7 +734,7 @@
   MagickSizeType
     size;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -931,12 +932,18 @@
 static MagickBooleanType RenderType(Image *image,const DrawInfo *draw_info,
   const PointInfo *offset,TypeMetric *metrics,ExceptionInfo *exception)
 {
+  const char
+    *font;
+
   const TypeInfo
     *type_info;
 
   DrawInfo
     *annotate_info;
 
+  ExceptionInfo
+    *sans_exception;
+
   MagickBooleanType
     status;
 
@@ -978,7 +985,7 @@
           int
             number_families;
 
-          register ssize_t
+          ssize_t
             i;
 
           /*
@@ -1001,23 +1008,32 @@
               "UnableToReadFont","`%s'",draw_info->family);
         }
     }
+  font=GetPolicyValue("system:font");
+  if ((font != (const char *) NULL) && (IsPathAccessible(font) != MagickFalse))
+    {
+      /*
+        Render with default system font.
+      */
+      annotate_info=CloneDrawInfo((ImageInfo *) NULL,draw_info);
+      annotate_info->font=ConstantString(font);
+      status=RenderFreetype(image,annotate_info,annotate_info->encoding,offset,
+        metrics,exception);
+      annotate_info=DestroyDrawInfo(annotate_info);
+      return(status);
+    }
+  sans_exception=AcquireExceptionInfo();
   if (type_info == (const TypeInfo *) NULL)
-    type_info=GetTypeInfoByFamily("Arial",draw_info->style,
-      draw_info->stretch,draw_info->weight,exception);
+    type_info=GetTypeInfoByFamily("Open Sans",draw_info->style,
+      draw_info->stretch,draw_info->weight,sans_exception);
   if (type_info == (const TypeInfo *) NULL)
-    type_info=GetTypeInfoByFamily("Helvetica",draw_info->style,
-      draw_info->stretch,draw_info->weight,exception);
-  if (type_info == (const TypeInfo *) NULL)
-    type_info=GetTypeInfoByFamily("Century Schoolbook",draw_info->style,
-      draw_info->stretch,draw_info->weight,exception);
-  if (type_info == (const TypeInfo *) NULL)
-    type_info=GetTypeInfoByFamily("Sans",draw_info->style,
-      draw_info->stretch,draw_info->weight,exception);
+    type_info=GetTypeInfoByFamily("Sans Serif",draw_info->style,
+      draw_info->stretch,draw_info->weight,sans_exception);
   if (type_info == (const TypeInfo *) NULL)
     type_info=GetTypeInfoByFamily((const char *) NULL,draw_info->style,
-      draw_info->stretch,draw_info->weight,exception);
+      draw_info->stretch,draw_info->weight,sans_exception);
   if (type_info == (const TypeInfo *) NULL)
-    type_info=GetTypeInfo("*",exception);
+    type_info=GetTypeInfo("*",sans_exception);
+  sans_exception=DestroyExceptionInfo(sans_exception);
   if (type_info == (const TypeInfo *) NULL)
     {
       status=RenderFreetype(image,draw_info,draw_info->encoding,offset,metrics,
@@ -1088,7 +1104,7 @@
   raqm_glyph_t
     *glyphs;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1166,7 +1182,7 @@
   FT_Error
     ft_status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1212,7 +1228,8 @@
 
 static inline MagickBooleanType IsEmptyOutline(FT_Outline outline)
 {
-  return((outline.n_points == 0) || (outline.n_contours <= 0));
+  return((outline.n_points == 0) || (outline.n_contours <= 0) ? MagickTrue :
+    MagickFalse);
 }
 
 static int TraceCubicBezier(FT_Vector *p,FT_Vector *q,FT_Vector *to,
@@ -1353,10 +1370,10 @@
     point,
     resolution;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1569,8 +1586,6 @@
       if (image->alpha_trait == UndefinedPixelTrait)
         (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception);
     }
-  point.x=0.0;
-  point.y=0.0;
   for (p=draw_info->text; GetUTFCode(p) != 0; p+=GetUTFOctets(p))
     if (GetUTFCode(p) < 0)
       break;
@@ -1650,7 +1665,7 @@
       }
     FT_Vector_Transform(&glyph.origin,&affine);
     (void) FT_Glyph_Transform(glyph.image,&affine,&glyph.origin);
-    ft_status=FT_Glyph_To_Bitmap(&glyph.image,ft_render_mode_normal,
+    ft_status=FT_Glyph_To_Bitmap(&glyph.image,FT_RENDER_MODE_NORMAL,
       (FT_Vector *) NULL,MagickTrue);
     if (ft_status != 0)
       continue;
@@ -1667,7 +1682,7 @@
         MagickBooleanType
           transparent_fill;
 
-        register unsigned char
+        unsigned char
           *r;
 
         /*
@@ -1692,10 +1707,10 @@
           PixelInfo
             fill_color;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           ssize_t
@@ -1705,8 +1720,8 @@
 
           if (status == MagickFalse)
             continue;
-          x_offset=(ssize_t) ceil(point.x-0.5);
-          y_offset=(ssize_t) ceil(point.y+y-0.5);
+          x_offset=CastDoubleToLong(ceil(point.x-0.5));
+          y_offset=CastDoubleToLong(ceil(point.y+y-0.5));
           if ((y_offset < 0) || (y_offset >= (ssize_t) image->rows))
             continue;
           q=(Quantum *) NULL;
@@ -1721,7 +1736,7 @@
           n=y*bitmap->bitmap.pitch;
           for (x=0; x < (ssize_t) bitmap->bitmap.width; x++, n++)
           {
-            x_offset=(ssize_t) ceil(point.x+x-0.5);
+            x_offset=CastDoubleToLong(ceil(point.x+x-0.5));
             if ((x_offset < 0) || (x_offset >= (ssize_t) image->columns))
               {
                 if (q != (Quantum *) NULL)
@@ -1886,10 +1901,10 @@
   char
     *destination;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -1954,7 +1969,7 @@
     point,
     resolution;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2073,8 +2088,8 @@
       crop_info=GetImageBoundingBox(annotate_image,exception);
       crop_info.height=(size_t) ((resolution.y/DefaultResolution)*
         ExpandAffine(&draw_info->affine)*draw_info->pointsize+0.5);
-      crop_info.y=(ssize_t) ceil((resolution.y/DefaultResolution)*extent.y/8.0-
-        0.5);
+      crop_info.y=CastDoubleToLong(ceil((resolution.y/DefaultResolution)*
+        extent.y/8.0-0.5));
       (void) FormatLocaleString(geometry,MagickPathExtent,
         "%.20gx%.20g%+.20g%+.20g",(double) crop_info.width,(double)
         crop_info.height,(double) crop_info.x,(double) crop_info.y);
@@ -2123,10 +2138,10 @@
       annotate_view=AcquireAuthenticCacheView(annotate_image,exception);
       for (y=0; y < (ssize_t) annotate_image->rows; y++)
       {
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         q=GetCacheViewAuthenticPixels(annotate_view,0,y,annotate_image->columns,
diff --git a/MagickCore/annotate.h b/MagickCore/annotate.h
index d74ae70..9a51827 100644
--- a/MagickCore/annotate.h
+++ b/MagickCore/annotate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/artifact.c b/MagickCore/artifact.c
index e1c0e00..0c376ed 100644
--- a/MagickCore/artifact.c
+++ b/MagickCore/artifact.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -155,7 +155,7 @@
     key[MagickPathExtent],
     value[MagickPathExtent];
 
-  register char
+  char
     *p;
 
   assert(image != (Image *) NULL);
@@ -273,7 +273,7 @@
 MagickExport const char *GetImageArtifact(const Image *image,
   const char *artifact)
 {
-  register const char
+  const char
     *p;
 
   assert(image != (Image *) NULL);
@@ -425,8 +425,11 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  SetImageArtifact() associates makes a copy of the given string arguments
-%  and inserts it into the artifact tree of the given image.
+%  SetImageArtifact() sets a key-value pair in the image artifact namespace.
+%  Artifacts differ from properties.  Properties are public and are generally
+%  exported to an external image format if the format supports it.  Artifacts
+%  are private and are utilized by the internal ImageMagick API to modify the
+%  behavior of certain algorithms.
 %
 %  The format of the SetImageArtifact method is:
 %
diff --git a/MagickCore/artifact.h b/MagickCore/artifact.h
index 02fdad6..bdd7c20 100644
--- a/MagickCore/artifact.h
+++ b/MagickCore/artifact.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/attribute.c b/MagickCore/attribute.c
index 0f081ae..ce76a7b 100644
--- a/MagickCore/attribute.c
+++ b/MagickCore/attribute.c
@@ -17,7 +17,7 @@
 %                                October 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -157,7 +157,7 @@
   RectangleInfo
     edge_geometry;
 
-  register const Quantum
+  const Quantum
     *p;
 
   ssize_t
@@ -216,7 +216,7 @@
   edge_view=AcquireVirtualCacheView(edge_image,exception);
   for (y=0; y < (ssize_t) edge_image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(edge_view,0,y,edge_image->columns,1,exception);
@@ -405,7 +405,7 @@
   RectangleInfo
     bounds;
 
-  register const Quantum
+  const Quantum
     *p;
 
   ssize_t
@@ -418,10 +418,40 @@
   artifact=GetImageArtifact(image,"trim:percent-background");
   if (artifact != (const char *) NULL)
     return(GetEdgeBoundingBox(image,exception));
-  bounds.width=0;
-  bounds.height=0;
-  bounds.x=(ssize_t) image->columns;
-  bounds.y=(ssize_t) image->rows;
+  artifact=GetImageArtifact(image, "trim:edges");
+  if (artifact == (const char *) NULL)
+    {
+      bounds.width=0;
+      bounds.height=0;
+      bounds.x=(ssize_t) image->columns;
+      bounds.y=(ssize_t) image->rows;
+    }
+  else
+    {
+      char
+        *edges,
+        *p,
+        *q;
+
+      bounds.width=(ssize_t) image->columns;
+      bounds.height=(ssize_t) image->rows;
+      bounds.x=0;
+      bounds.y=0;
+      edges=AcquireString(artifact);
+      q=edges;
+      while ((p=StringToken(",",&q)) != (char *) NULL)
+      {
+        if (LocaleCompare(p,"north") == 0)
+          bounds.y=(ssize_t) image->rows;
+        if (LocaleCompare(p,"east") == 0)
+          bounds.width=0;
+        if (LocaleCompare(p,"south") == 0)
+          bounds.height=0;
+        if (LocaleCompare(p,"west") == 0)
+          bounds.x=(ssize_t) image->columns;
+      }
+      edges=DestroyString(edges);
+    }
   GetPixelInfo(image,&target[0]);
   image_view=AcquireVirtualCacheView(image,exception);
   p=GetCacheViewVirtualPixels(image_view,0,0,1,1,exception);
@@ -455,10 +485,10 @@
     RectangleInfo
       bounding_box;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -567,7 +597,7 @@
     background[4],
     edge_background;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -596,7 +626,7 @@
     RectangleInfo
       edge_geometry;
 
-    register const Quantum
+    const Quantum
       *p;
 
     ssize_t
@@ -650,7 +680,7 @@
     edge_view=AcquireVirtualCacheView(edge_image,exception);
     for (y=0; y < (ssize_t) edge_image->rows; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       p=GetCacheViewVirtualPixels(edge_view,0,y,edge_image->columns,1,
@@ -684,7 +714,7 @@
   PointInfo
     **chain;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -768,10 +798,10 @@
   n=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -844,7 +874,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -953,10 +983,10 @@
         const int
           id = GetOpenMPThreadId();
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -966,7 +996,7 @@
           continue;
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1005,10 +1035,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1018,7 +1048,7 @@
       continue;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1167,7 +1197,7 @@
     *bounding_box,
     *vertices;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1207,7 +1237,7 @@
       min_diameter = -1.0,
       min_projection = 0.0;
 
-    register ssize_t
+    ssize_t
       j,
       k;
 
@@ -1523,10 +1553,10 @@
   ImageType
     type;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -1605,10 +1635,10 @@
   MagickBooleanType
     bilevel;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
   ssize_t
@@ -1807,10 +1837,10 @@
   CacheView
     *image_view;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -1900,7 +1930,7 @@
   range=GetQuantumRange(depth);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -1931,7 +1961,7 @@
       Quantum
         *depth_map;
 
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -1949,10 +1979,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -1966,7 +1996,7 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2007,10 +2037,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2023,7 +2053,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/attribute.h b/MagickCore/attribute.h
index a326034..cbf8a73 100644
--- a/MagickCore/attribute.h
+++ b/MagickCore/attribute.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/blob-private.h b/MagickCore/blob-private.h
index 0751c87..d57912f 100644
--- a/MagickCore/blob-private.h
+++ b/MagickCore/blob-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/blob.c b/MagickCore/blob.c
index 1785d6e..2a2dc02 100644
--- a/MagickCore/blob.c
+++ b/MagickCore/blob.c
@@ -17,7 +17,7 @@
 %                                 July 1999                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -350,7 +350,7 @@
   int
     file;
 
-  register size_t
+  size_t
     i;
 
   ssize_t
@@ -371,7 +371,7 @@
   for (i=0; i < length; i+=count)
   {
     count=write(file,(const char *) blob+i,MagickMin(length-i,(size_t)
-      SSIZE_MAX));
+      LONG_MAX));
     if (count <= 0)
       {
         count=0;
@@ -1135,7 +1135,7 @@
 MagickExport MagickBooleanType DiscardBlobBytes(Image *image,
   const MagickSizeType length)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   size_t
@@ -1402,7 +1402,7 @@
   MagickOffsetType
     offset;
 
-  register size_t
+  size_t
     i;
 
   ssize_t
@@ -1502,7 +1502,7 @@
       return(blob);
     }
   *length=(size_t) MagickMin(offset,(MagickOffsetType)
-    MagickMin(extent,(size_t) SSIZE_MAX));
+    MagickMin(extent,(size_t) LONG_MAX));
   blob=(unsigned char *) NULL;
   if (~(*length) >= (MagickPathExtent-1))
     blob=(unsigned char *) AcquireQuantumMemory(*length+MagickPathExtent,
@@ -1526,7 +1526,7 @@
       for (i=0; i < *length; i+=count)
       {
         count=read(file,blob+i,(size_t) MagickMin(*length-i,(size_t)
-          SSIZE_MAX));
+          LONG_MAX));
         if (count <= 0)
           {
             count=0;
@@ -1586,7 +1586,7 @@
   MagickSizeType
     extent;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   assert(image->blob != (BlobInfo *) NULL);
@@ -2302,10 +2302,10 @@
   int
     file;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -2730,7 +2730,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3094,7 +3094,7 @@
   int
     c;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -3144,7 +3144,7 @@
   int
     c;
 
-  register unsigned char
+  unsigned char
     *q;
 
   assert(p != (unsigned char *) NULL);
@@ -3705,7 +3705,7 @@
 %
 %  ReadBlob() reads data from the blob or image file and returns it.  It
 %  returns the number of bytes read. If length is zero, ReadBlob() returns
-%  zero and has no other results. If length is greater than SSIZE_MAX, the
+%  zero and has no other results. If length is greater than LONG_MAX, the
 %  result is unspecified.
 %
 %  The format of the ReadBlob method is:
@@ -3731,7 +3731,7 @@
   int
     c;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -3812,7 +3812,7 @@
       {
         default:
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) length; i+=count)
@@ -3869,7 +3869,8 @@
       if ((count != (ssize_t) length) && (status != Z_OK))
         ThrowBlobException(blob_info);
       if (blob_info->eof == MagickFalse)
-        blob_info->eof=gzeof(blob_info->file_info.gzfile);
+        blob_info->eof=gzeof(blob_info->file_info.gzfile) != 0 ? MagickTrue :
+          MagickFalse;
 #endif
       break;
     }
@@ -3879,7 +3880,7 @@
       int
         status;
 
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i+=count)
@@ -3905,7 +3906,7 @@
       break;
     case BlobStream:
     {
-      register const unsigned char
+      const unsigned char
         *p;
 
       if (blob_info->offset >= (MagickOffsetType) blob_info->length)
@@ -3960,7 +3961,7 @@
   BlobInfo
     *magick_restrict blob_info;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
   unsigned char
@@ -4104,7 +4105,7 @@
 */
 MagickExport unsigned int ReadBlobLong(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
   ssize_t
@@ -4165,7 +4166,7 @@
   MagickSizeType
     value;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
   ssize_t
@@ -4228,10 +4229,10 @@
 */
 MagickExport unsigned short ReadBlobShort(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned short
+  unsigned short
     value;
 
   ssize_t
@@ -4282,10 +4283,10 @@
 */
 MagickExport unsigned int ReadBlobLSBLong(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned int
+  unsigned int
     value;
 
   ssize_t
@@ -4370,10 +4371,10 @@
 */
 MagickExport unsigned short ReadBlobLSBShort(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned short
+  unsigned short
     value;
 
   ssize_t
@@ -4456,10 +4457,10 @@
 */
 MagickExport unsigned int ReadBlobMSBLong(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned int
+  unsigned int
     value;
 
   ssize_t
@@ -4506,10 +4507,10 @@
 */
 MagickExport MagickSizeType ReadBlobMSBLongLong(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register MagickSizeType
+  MagickSizeType
     value;
 
   ssize_t
@@ -4560,10 +4561,10 @@
 */
 MagickExport unsigned short ReadBlobMSBShort(Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned short
+  unsigned short
     value;
 
   ssize_t
@@ -4750,7 +4751,7 @@
 %  returns a pointer to the data buffer you supply or to the image memory
 %  buffer if its supported (zero-copy). If length is zero, ReadBlobStream()
 %  returns a count of zero and has no other results. If length is greater than
-%  SSIZE_MAX, the result is unspecified.
+%  LONG_MAX, the result is unspecified.
 %
 %  The format of the ReadBlobStream method is:
 %
@@ -4833,7 +4834,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
@@ -4983,8 +4984,8 @@
         }
         case SEEK_CUR:
         {
-          if (((offset > 0) && (blob_info->offset > (SSIZE_MAX-offset))) ||
-              ((offset < 0) && (blob_info->offset < (-SSIZE_MAX-offset))))
+          if (((offset > 0) && (blob_info->offset > (LONG_MAX-offset))) ||
+              ((offset < 0) && (blob_info->offset < (LONG_MIN-offset))))
             {
               errno=EOVERFLOW;
               return(-1);
@@ -5601,10 +5602,10 @@
   int
     c;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -5683,7 +5684,7 @@
       {
         default:
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) length; i+=count)
@@ -5744,7 +5745,7 @@
       int
         status;
 
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i+=count)
diff --git a/MagickCore/blob.h b/MagickCore/blob.h
index cb62f64..c145000 100644
--- a/MagickCore/blob.h
+++ b/MagickCore/blob.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/cache-private.h b/MagickCore/cache-private.h
index 03dbd18..cb25b16 100644
--- a/MagickCore/cache-private.h
+++ b/MagickCore/cache-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/cache-view.c b/MagickCore/cache-view.c
index 2866840..bfb8b18 100644
--- a/MagickCore/cache-view.c
+++ b/MagickCore/cache-view.c
@@ -23,7 +23,7 @@
 %                               February 2000                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -708,7 +708,7 @@
   Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(cache_view != (CacheView *) NULL);
@@ -777,10 +777,10 @@
   const int
     id = GetOpenMPThreadId();
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(cache_view != (CacheView *) NULL);
@@ -850,7 +850,7 @@
   const int
     id = GetOpenMPThreadId();
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
   assert(cache_view != (CacheView *) NULL);
@@ -912,7 +912,7 @@
   const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(cache_view != (CacheView *) NULL);
diff --git a/MagickCore/cache-view.h b/MagickCore/cache-view.h
index 128c32e..162d7d5 100644
--- a/MagickCore/cache-view.h
+++ b/MagickCore/cache-view.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/cache.c b/MagickCore/cache.c
index a3be861..e0abf39 100644
--- a/MagickCore/cache.c
+++ b/MagickCore/cache.c
@@ -17,7 +17,7 @@
 %                                 July 1999                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -224,8 +224,10 @@
       cache_info->synchronize=IsStringTrue(value);
       value=DestroyString(value);
     }
-  cache_info->width_limit=GetMagickResourceLimit(WidthResource);
-  cache_info->height_limit=GetMagickResourceLimit(HeightResource);
+  cache_info->width_limit=MagickMin(GetMagickResourceLimit(WidthResource),
+    (MagickSizeType) LONG_MAX);
+  cache_info->height_limit=MagickMin(GetMagickResourceLimit(HeightResource),
+    (MagickSizeType) LONG_MAX);
   cache_info->semaphore=AcquireSemaphoreInfo();
   cache_info->reference_count=1;
   cache_info->file_semaphore=AcquireSemaphoreInfo();
@@ -261,7 +263,7 @@
   NexusInfo
     **magick_restrict nexus_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   nexus_info=(NexusInfo **) MagickAssumeAligned(AcquireAlignedMemory(2*
@@ -418,7 +420,7 @@
   CacheInfo
     *magick_restrict cache_info;
 
-  register Quantum
+  Quantum
     *magick_restrict p,
     *magick_restrict q;
 
@@ -445,7 +447,7 @@
     return(MagickFalse);
   for (y=0; y < (ssize_t) nexus_info->region.height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) nexus_info->region.width; x++)
@@ -453,7 +455,7 @@
       double
         mask_alpha;
 
-      register ssize_t
+      ssize_t
         i;
 
       mask_alpha=QuantumScale*GetPixelWriteMask(image,p);
@@ -625,7 +627,7 @@
       if (cache_info->length < 0x7ffff000)
         {
           count=sendfile(clone_info->file,cache_info->file,(off_t *) NULL,
-            (ssize_t) cache_info->length);
+            (size_t) cache_info->length);
           if (count == (ssize_t) cache_info->length)
             return(MagickTrue);
           if ((lseek(cache_info->file,0,SEEK_SET) < 0) ||
@@ -741,7 +743,7 @@
     Quantum
       *pixels;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -765,10 +767,10 @@
         sizeof(Quantum));
     else
       {
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         /*
@@ -778,7 +780,7 @@
         q=clone_nexus[id]->pixels;
         for (x=0; x < (ssize_t) cache_info->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           if (x == (ssize_t) clone_info->columns)
@@ -1117,7 +1119,7 @@
 MagickPrivate NexusInfo **DestroyPixelCacheNexus(NexusInfo **nexus_info,
   const size_t number_threads)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(nexus_info != (NexusInfo **) NULL);
@@ -1852,7 +1854,7 @@
 static inline MagickBooleanType CopyPixel(const Image *image,
   const Quantum *source,Quantum *destination)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (source == (const Quantum *) NULL)
@@ -1882,7 +1884,7 @@
   CacheInfo
     *magick_restrict cache_info;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
   assert(image != (Image *) NULL);
@@ -1937,7 +1939,7 @@
   const int
     id = GetOpenMPThreadId();
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
   assert(image != (const Image *) NULL);
@@ -2114,7 +2116,7 @@
   const int
     id = GetOpenMPThreadId();
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
   assert(image != (const Image *) NULL);
@@ -2732,20 +2734,20 @@
     *magick_restrict pixels,
     virtual_pixel[MaxPixelChannels];
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register const void
+  const void
     *magick_restrict r;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     i,
     u;
 
-  register unsigned char
+  unsigned char
     *magick_restrict s;
 
   ssize_t
@@ -3408,7 +3410,7 @@
   CacheInfo
     *magick_restrict cache_info;
 
-  register Quantum
+  Quantum
     *magick_restrict p,
     *magick_restrict q;
 
@@ -3435,7 +3437,7 @@
     return(MagickFalse);
   for (y=0; y < (ssize_t) nexus_info->region.height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) nexus_info->region.width; x++)
@@ -3443,7 +3445,7 @@
       double
         mask_alpha;
 
-      register ssize_t
+      ssize_t
         i;
 
       mask_alpha=(double) GetPixelCompositeMask(image,p);
@@ -3547,7 +3549,7 @@
   const CacheInfo *magick_restrict cache_info,const MagickOffsetType offset,
   const MagickSizeType length,const unsigned char *magick_restrict buffer)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -3562,10 +3564,10 @@
   {
 #if !defined(MAGICKCORE_HAVE_PWRITE)
     count=write(cache_info->file,buffer+i,(size_t) MagickMin(length-i,(size_t)
-      SSIZE_MAX));
+      LONG_MAX));
 #else
     count=pwrite(cache_info->file,buffer+i,(size_t) MagickMin(length-i,(size_t)
-      SSIZE_MAX),offset+i);
+      LONG_MAX),offset+i);
 #endif
     if (count <= 0)
       {
@@ -3725,8 +3727,6 @@
   cache_info->length=length;
   if (image->ping != MagickFalse)
     {
-      cache_info->storage_class=image->storage_class;
-      cache_info->colorspace=image->colorspace;
       cache_info->type=PingCache;
       return(MagickTrue);
     }
@@ -4372,7 +4372,7 @@
   const CacheInfo *magick_restrict cache_info,const MagickOffsetType offset,
   const MagickSizeType length,unsigned char *magick_restrict buffer)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -4387,10 +4387,10 @@
   {
 #if !defined(MAGICKCORE_HAVE_PREAD)
     count=read(cache_info->file,buffer+i,(size_t) MagickMin(length-i,(size_t)
-      SSIZE_MAX));
+      LONG_MAX));
 #else
     count=pread(cache_info->file,buffer+i,(size_t) MagickMin(length-i,(size_t)
-      SSIZE_MAX),offset+i);
+      LONG_MAX),offset+i);
 #endif
     if (count <= 0)
       {
@@ -4414,10 +4414,10 @@
     extent,
     length;
 
-  register ssize_t
+  ssize_t
     y;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
@@ -4440,7 +4440,7 @@
     case MemoryCache:
     case MapCache:
     {
-      register unsigned char
+      unsigned char
         *magick_restrict p;
 
       /*
@@ -4585,10 +4585,10 @@
     extent,
     length;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -4617,7 +4617,7 @@
     case MemoryCache:
     case MapCache:
     {
-      register Quantum
+      Quantum
         *magick_restrict p;
 
       /*
@@ -5015,6 +5015,16 @@
   MagickCachePrefetch((unsigned char *) nexus_info->pixels+CACHE_LINE_SIZE,1,1);
 }
 
+static inline MagickBooleanType ValidatePixelOffset(const ssize_t x,
+  const size_t a)
+{
+  if ((x >= 0) && (x >= ((ssize_t) LONG_MAX-(ssize_t) a)))
+    return(MagickFalse);
+  if (x <= ((ssize_t) LONG_MIN+(ssize_t) a))
+    return(MagickFalse);
+  return(MagickTrue);
+}
+
 static Quantum *SetPixelCacheNexusPixels(
   const CacheInfo *magick_restrict cache_info,const MapMode mode,
   const ssize_t x,const ssize_t y,const size_t width,const size_t height,
@@ -5040,6 +5050,15 @@
         "NoPixelsDefinedInCache","`%s'",cache_info->filename);
       return((Quantum *) NULL);
     }
+  if (((MagickSizeType) width > cache_info->width_limit) ||
+      ((MagickSizeType) height > cache_info->height_limit) ||
+      (ValidatePixelOffset(x,width) == MagickFalse) ||
+      (ValidatePixelOffset(y,height) == MagickFalse))
+    {
+      (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
+        "WidthOrHeightExceedsLimit","`%s'",cache_info->filename);
+      return((Quantum *) NULL);
+    }
   if (((cache_info->type == MemoryCache) || (cache_info->type == MapCache)) &&
       (buffered == MagickFalse))
     {
@@ -5073,13 +5092,6 @@
   /*
     Pixels are stored in a staging region until they are synced to the cache.
   */
-  if (((MagickSizeType) width > cache_info->width_limit) ||
-      ((MagickSizeType) height > cache_info->height_limit))
-    {
-      (void) ThrowMagickException(exception,GetMagickModule(),ImageError,
-        "WidthOrHeightExceedsLimit","`%s'",cache_info->filename);
-      return((Quantum *) NULL);
-    }
   number_pixels=(MagickSizeType) width*height;
   length=MagickMax(number_pixels,MagickMax(cache_info->columns,
     cache_info->rows))*cache_info->number_channels*sizeof(*nexus_info->pixels);
@@ -5172,10 +5184,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -5549,10 +5561,10 @@
     extent,
     length;
 
-  register const unsigned char
+  const unsigned char
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -5575,7 +5587,7 @@
     case MemoryCache:
     case MapCache:
     {
-      register unsigned char
+      unsigned char
         *magick_restrict q;
 
       /*
@@ -5720,10 +5732,10 @@
     extent,
     length;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -5744,7 +5756,7 @@
     case MemoryCache:
     case MapCache:
     {
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       /*
diff --git a/MagickCore/cache.h b/MagickCore/cache.h
index 4c2f07e..2d29db5 100644
--- a/MagickCore/cache.h
+++ b/MagickCore/cache.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/channel.c b/MagickCore/channel.c
index 02968bb..19c4f37 100644
--- a/MagickCore/channel.c
+++ b/MagickCore/channel.c
@@ -17,7 +17,7 @@
 %                               December 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -147,13 +147,13 @@
       destination_traits,
       source_traits;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -574,13 +574,13 @@
     Quantum
       *pixels;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i;
 
     if (status == MagickFalse)
@@ -595,7 +595,7 @@
     next=image;
     for (i=0; i < (ssize_t) GetPixelChannels(combine_image); i++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       PixelChannel channel = GetPixelChannelChannel(combine_image,i);
@@ -760,13 +760,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -781,7 +781,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       SetPixelChannel(separate_image,GrayPixelChannel,(Quantum) 0,q);
@@ -852,7 +852,7 @@
     *images,
     *separate_image;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
@@ -918,7 +918,7 @@
     gamma,
     Sa;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1010,10 +1010,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1030,7 +1030,7 @@
           double
             gamma;
 
-          register ssize_t
+          ssize_t
             i;
 
           gamma=QuantumScale*GetPixelAlpha(image,q);
@@ -1070,10 +1070,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1130,10 +1130,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1151,7 +1151,7 @@
             gamma,
             Sa;
 
-          register ssize_t
+          ssize_t
             i;
 
           Sa=QuantumScale*GetPixelAlpha(image,q);
@@ -1223,10 +1223,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1281,10 +1281,10 @@
         PixelInfo
           pixel;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
diff --git a/MagickCore/channel.h b/MagickCore/channel.h
index 3d379de..2fb9fd8 100644
--- a/MagickCore/channel.h
+++ b/MagickCore/channel.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/cipher.c b/MagickCore/cipher.c
index b2b6ca3..057b11c 100644
--- a/MagickCore/cipher.c
+++ b/MagickCore/cipher.c
@@ -16,7 +16,7 @@
 %                               March  2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -280,7 +280,7 @@
 static inline void AddRoundKey(const unsigned int *ciphertext,
   const unsigned int *key,unsigned int *plaintext)
 {
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -320,10 +320,10 @@
 static void FinalizeRoundKey(const unsigned int *ciphertext,
   const unsigned int *key,unsigned char *plaintext)
 {
-  register unsigned char
+  unsigned char
     *p;
 
-  register unsigned int
+  unsigned int
     i,
     j;
 
@@ -349,10 +349,10 @@
 static void InitializeRoundKey(const unsigned char *ciphertext,
   const unsigned int *key,unsigned int *plaintext)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned int
+  unsigned int
     i,
     j;
 
@@ -381,7 +381,7 @@
 static void EncipherAESBlock(AESInfo *aes_info,const unsigned char *plaintext,
   unsigned char *ciphertext)
 {
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -523,7 +523,7 @@
 static inline void IncrementCipherNonce(const size_t length,
   unsigned char *nonce)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=(ssize_t) (length-1); i >= 0; i--)
@@ -583,7 +583,7 @@
   SignatureInfo
     *signature_info;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -658,11 +658,11 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -793,7 +793,7 @@
   QuantumType
     quantum_type;
 
-  register unsigned char
+  unsigned char
     *p;
 
   SignatureInfo
@@ -878,11 +878,11 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -960,7 +960,7 @@
 static inline void InverseAddRoundKey(const unsigned int *alpha,
   unsigned int *beta)
 {
-  register unsigned int
+  unsigned int
     i,
     j;
 
@@ -993,7 +993,7 @@
 
 static void SetAESKey(AESInfo *aes_info,const StringInfo *key)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/cipher.h b/MagickCore/cipher.h
index 77939a3..0443451 100644
--- a/MagickCore/cipher.h
+++ b/MagickCore/cipher.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/client.c b/MagickCore/client.c
index 4f758cd..197fd32 100644
--- a/MagickCore/client.c
+++ b/MagickCore/client.c
@@ -17,7 +17,7 @@
 %                               March 2003                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/client.h b/MagickCore/client.h
index a475c70..28f4c26 100644
--- a/MagickCore/client.h
+++ b/MagickCore/client.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/coder-private.h b/MagickCore/coder-private.h
index 31a6665..f431be8 100644
--- a/MagickCore/coder-private.h
+++ b/MagickCore/coder-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/coder.c b/MagickCore/coder.c
index 8b0abaf..6f9348d 100644
--- a/MagickCore/coder.c
+++ b/MagickCore/coder.c
@@ -17,7 +17,7 @@
 %                                 May 2001                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -125,7 +125,7 @@
 
 static void *DestroyCoderNode(void *coder_info)
 {
-  register CoderInfo
+  CoderInfo
     *p;
 
   p=(CoderInfo *) coder_info;
@@ -146,7 +146,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   SplayTreeInfo
@@ -163,7 +163,7 @@
     CoderInfo
       *coder_info;
 
-    register const CoderMapInfo
+    const CoderMapInfo
       *p;
 
     p=CoderMap+i;
@@ -325,10 +325,10 @@
   const CoderInfo
     **coder_map;
 
-  register const CoderInfo
+  const CoderInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -395,7 +395,7 @@
 
 static int CoderCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -410,10 +410,10 @@
   char
     **coder_map;
 
-  register const CoderInfo
+  const CoderInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -520,7 +520,7 @@
   const CoderInfo
     **coder_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/coder.h b/MagickCore/coder.h
index 8cc146f..7c12088 100644
--- a/MagickCore/coder.h
+++ b/MagickCore/coder.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/color-private.h b/MagickCore/color-private.h
index 856a87e..786339c 100644
--- a/MagickCore/color-private.h
+++ b/MagickCore/color-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -45,7 +45,7 @@
 
   if (*color != '\0')
     {
-      register char
+      char
         *p;
 
       (void) CopyMagickString(start_color,color,MagickPathExtent);
diff --git a/MagickCore/color.c b/MagickCore/color.c
index 46a2038..7a64c01 100644
--- a/MagickCore/color.c
+++ b/MagickCore/color.c
@@ -16,7 +16,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -839,7 +839,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -874,7 +874,7 @@
     ColorInfo
       *color_info;
 
-    register const ColormapInfo
+    const ColormapInfo
       *p;
 
     p=Colormap+i;
@@ -950,7 +950,7 @@
 
 static void *DestroyColorElement(void *color_info)
 {
-  register ColorInfo
+  ColorInfo
     *p;
 
   p=(ColorInfo *) color_info;
@@ -1010,10 +1010,10 @@
   char
     colorname[MagickPathExtent];
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
-  register char
+  char
     *q;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -1285,10 +1285,10 @@
   const ColorInfo
     **colors;
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1359,7 +1359,7 @@
 
 static int ColorCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -1378,10 +1378,10 @@
   char
     **colors;
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1650,7 +1650,7 @@
     fuzz,
     pixel;
 
-  register double
+  double
     distance;
 
   if (image->alpha_trait == UndefinedPixelTrait)
@@ -1718,11 +1718,11 @@
     target,
     pixel;
 
-  register const Quantum
+  const Quantum
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1827,7 +1827,7 @@
     fuzz,
     pixel;
 
-  register double
+  double
     distance;
 
   if (GetPixelInfoIntensity(image,p) == GetPixelInfoIntensity(image,q))
@@ -1879,7 +1879,7 @@
   const ColorInfo
     **color_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2177,6 +2177,91 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
+
+static MagickStatusType ParseCSSColor(const char *magick_restrict color,
+  GeometryInfo *geometry_info)
+{
+  char
+    *q;
+
+  ssize_t
+    i;
+
+  MagickStatusType
+    flags;
+
+  SetGeometryInfo(geometry_info);
+  flags=NoValue;
+  if ((color == (char *) NULL) || (*color == '\0'))
+    return(flags);
+  q=(char *) color;
+  if (*q == '(')
+    q++;
+  for (i=0; (i < 5) && (*q != ')') && (*q != '\0'); i++)
+  {
+    char
+      *p;
+
+    float
+      intensity;
+
+    p=q;
+    intensity=(float) StringToDouble(p,&q);
+    if (p == q)
+      break;
+    if (*q == '%')
+      {
+        intensity*=0.01f*255.0f;
+        q++;
+      }
+    switch (i)
+    {
+      case 0:
+      {
+        geometry_info->rho=intensity;
+        flags|=RhoValue;
+        if (LocaleNCompare(q,"deg",3) == 0)
+          q+=3;
+        break;
+      }
+      case 1:
+      {
+        geometry_info->sigma=intensity;
+        flags|=SigmaValue;
+        break;
+      }
+      case 2:
+      {
+        geometry_info->xi=intensity;
+        flags|=XiValue;
+        break;
+      }
+      case 3:
+      {
+        geometry_info->psi=intensity;
+        flags|=PsiValue;
+        break;
+      }
+      case 4:
+      {
+        geometry_info->chi=intensity;
+        flags|=ChiValue;
+        break;
+      }
+    }
+    while (isspace((int) ((unsigned char) *q)) != 0)
+      q++;
+    if (*q == ',')
+      q++;
+    if (*q == '/')
+      {
+        flags|=AlphaValue;
+        q++;
+      }
+  }
+  return(flags);
+}
+
 MagickExport MagickBooleanType QueryColorCompliance(const char *name,
   const ComplianceType compliance,PixelInfo *color,ExceptionInfo *exception)
 {
@@ -2189,10 +2274,10 @@
   MagickStatusType
     flags;
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2326,17 +2411,19 @@
       if (LocaleNCompare(colorspace,"device-",7) == 0)
         {
           (void) CopyMagickString(colorspace,colorspace+7,MagickPathExtent);
-          scale=(double) QuantumRange;
+          if (strchr(name,'%') == (char *) NULL)
+            scale=(double) QuantumRange;
           icc_color=MagickTrue;
         }
-      if (LocaleCompare(colorspace,"icc-color") == 0)
+      if ((LocaleCompare(colorspace,"color") == 0) ||
+          (LocaleCompare(colorspace,"icc-color") == 0))
         {
-          register ssize_t
+          ssize_t
             j;
 
           (void) CopyMagickString(colorspace,name+i+2,MagickPathExtent);
           for (j=0; colorspace[j] != '\0'; j++)
-            if (colorspace[j] == ',')
+            if ((colorspace[j] == ' ') || (colorspace[j] == ','))
               break;
           colorspace[j--]='\0';
           i+=j+3;
@@ -2363,11 +2450,10 @@
           color->colorspace=sRGBColorspace;  /* as required by SVG standard */
           color->depth=8;
         }
-      SetGeometryInfo(&geometry_info);
       if (i >= (ssize_t) strlen(name))
-        flags=ParseGeometry(name,&geometry_info);
+        flags=ParseCSSColor(name,&geometry_info);
       else
-        flags=ParseGeometry(name+i+1,&geometry_info);
+        flags=ParseCSSColor(name+i+1,&geometry_info);
       if (flags == 0)
         {
           char
@@ -2400,8 +2486,8 @@
           colorname=DestroyString(colorname);
           return(status);
         }
-      if ((flags & PercentValue) != 0)
-        scale=(double) (QuantumRange/100.0);
+      if ((flags & AlphaValue) != 0)
+        color->alpha_trait=BlendPixelTrait;
       if ((flags & RhoValue) != 0)
         color->red=(double) ClampToQuantum((MagickRealType) (scale*
           geometry_info.rho));
@@ -2419,8 +2505,14 @@
               geometry_info.psi));
           else
             if (color->alpha_trait != UndefinedPixelTrait)
-              color->alpha=(double) ClampToQuantum(QuantumRange*
-                geometry_info.psi);
+              {
+                if ((flags & AlphaValue) != 0)
+                  color->alpha=(double) ClampToQuantum((MagickRealType) (scale*
+                    geometry_info.psi));
+                else
+                  color->alpha=(double) ClampToQuantum((MagickRealType) (
+                    QuantumRange*geometry_info.psi));
+              }
         }
       if (((flags & ChiValue) != 0) &&
           (color->alpha_trait != UndefinedPixelTrait))
@@ -2458,8 +2550,6 @@
             red;
 
           scale=1.0/255.0;
-          if ((flags & PercentValue) != 0)
-            scale=1.0/100.0;
           geometry_info.sigma*=scale;
           geometry_info.xi*=scale;
           red=0.0;
@@ -2577,7 +2667,7 @@
   double
     alpha;
 
-  register const ColorInfo
+  const ColorInfo
     *p;
 
   magick_unreferenced(image);
diff --git a/MagickCore/color.h b/MagickCore/color.h
index 5ee6569..d8af3b5 100644
--- a/MagickCore/color.h
+++ b/MagickCore/color.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/colormap-private.h b/MagickCore/colormap-private.h
index 8bf0b02..1fd20c1 100644
--- a/MagickCore/colormap-private.h
+++ b/MagickCore/colormap-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/colormap.c b/MagickCore/colormap.c
index 6c23412..396da39 100644
--- a/MagickCore/colormap.c
+++ b/MagickCore/colormap.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -49,6 +49,7 @@
 #include "MagickCore/color.h"
 #include "MagickCore/color-private.h"
 #include "MagickCore/colormap.h"
+#include "MagickCore/colormap-private.h"
 #include "MagickCore/client.h"
 #include "MagickCore/configure.h"
 #include "MagickCore/exception.h"
@@ -104,7 +105,7 @@
 MagickExport MagickBooleanType AcquireImageColormap(Image *image,
   const size_t colors,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -209,10 +210,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     ssize_t
@@ -302,7 +303,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -347,10 +348,10 @@
     Quantum
       index;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -361,7 +362,8 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      index=(Quantum) pixels[(ssize_t) GetPixelIndex(image,q)];
+      i=ConstrainColormapIndex(image,GetPixelIndex(image,q),exception);
+      index=(Quantum) pixels[i];
       SetPixelIndex(image,index,q);
       SetPixelViaPixelInfo(image,image->colormap+(ssize_t) index,q);
       q+=GetPixelChannels(image);
diff --git a/MagickCore/colormap.h b/MagickCore/colormap.h
index d1310bc..d1cbe00 100644
--- a/MagickCore/colormap.h
+++ b/MagickCore/colormap.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/colorspace-private.h b/MagickCore/colorspace-private.h
index 8fd3b44..423ec54 100644
--- a/MagickCore/colorspace-private.h
+++ b/MagickCore/colorspace-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -131,8 +131,10 @@
   const ColorspaceType colorspace)
 {
   if ((colorspace == sRGBColorspace) || (colorspace == RGBColorspace) ||
-      (colorspace == scRGBColorspace) || (colorspace == TransparentColorspace) ||
-      (colorspace == GRAYColorspace) || (colorspace == LinearGRAYColorspace))
+      (colorspace == Adobe98Colorspace) || (colorspace == ProPhotoColorspace) ||
+      (colorspace == DisplayP3Colorspace) || (colorspace == scRGBColorspace) ||
+      (colorspace == TransparentColorspace) || (colorspace == GRAYColorspace) ||
+      (colorspace == LinearGRAYColorspace))
     return(MagickTrue);
   return(MagickFalse);
 }
diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index 08153f8..2ffc72f 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -169,6 +169,42 @@
 %
 */
 
+static inline void ConvertAdobe98ToRGB(const double r,const double g,
+  const double b,double *red,double *green,double *blue)
+{
+  double
+    X,
+    Y,
+    Z;
+
+  ConvertAdobe98ToXYZ(r,g,b,&X,&Y,&Z);
+  ConvertXYZToRGB(X,Y,Z,red,green,blue);
+}
+
+static inline void ConvertDisplayP3ToRGB(const double r,const double g,
+  const double b,double *red,double *green,double *blue)
+{
+  double
+    X,
+    Y,
+    Z;
+
+  ConvertDisplayP3ToXYZ(r,g,b,&X,&Y,&Z);
+  ConvertXYZToRGB(X,Y,Z,red,green,blue);
+}
+
+static inline void ConvertProPhotoToRGB(const double r,const double g,
+  const double b,double *red,double *green,double *blue)
+{
+  double
+    X,
+    Y,
+    Z;
+
+  ConvertProPhotoToXYZ(r,g,b,&X,&Y,&Z);
+  ConvertXYZToRGB(X,Y,Z,red,green,blue);
+}
+
 static inline void ConvertRGBToCMY(const double red,const double green,
   const double blue,double *cyan,double *magenta,double *yellow)
 {
@@ -177,6 +213,42 @@
   *yellow=QuantumScale*(QuantumRange-blue);
 }
 
+static void ConvertRGBToAdobe98(const double red,const double green,
+  const double blue,double *r,double *g,double *b)
+{
+  double
+    X,
+    Y,
+    Z;
+
+  ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
+  ConvertXYZToAdobe98(X,Y,Z,r,g,b);
+}
+
+static void ConvertRGBToDisplayP3(const double red,const double green,
+  const double blue,double *r,double *g,double *b)
+{
+  double
+    X,
+    Y,
+    Z;
+
+  ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
+  ConvertXYZToDisplayP3(X,Y,Z,r,g,b);
+}
+
+static void ConvertRGBToProPhoto(const double red,const double green,
+  const double blue,double *r,double *g,double *b)
+{
+  double
+    X,
+    Y,
+    Z;
+
+  ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
+  ConvertXYZToProPhoto(X,Y,Z,r,g,b);
+}
+
 static inline void ConvertXYZToLMS(const double x,const double y,
   const double z,double *L,double *M,double *S)
 {
@@ -392,7 +464,7 @@
   PrimaryInfo
     primary_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -445,10 +517,10 @@
         PixelInfo
           pixel;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -501,10 +573,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -558,10 +630,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -594,6 +666,8 @@
       return(status);
     }
     case CMYColorspace:
+    case Adobe98Colorspace:
+    case DisplayP3Colorspace:
     case HCLColorspace:
     case HCLpColorspace:
     case HSBColorspace:
@@ -608,6 +682,7 @@
     case LCHuvColorspace:
     case LMSColorspace:
     case LuvColorspace:
+    case ProPhotoColorspace:
     case xyYColorspace:
     case XYZColorspace:
     case YCbCrColorspace:
@@ -646,10 +721,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -676,11 +751,21 @@
           blue=(double) GetPixelBlue(image,q);
           switch (colorspace)
           {
+            case Adobe98Colorspace:
+            {
+              ConvertRGBToAdobe98(red,green,blue,&X,&Y,&Z);
+              break;
+            }
             case CMYColorspace:
             {
               ConvertRGBToCMY(red,green,blue,&X,&Y,&Z);
               break;
             }
+            case DisplayP3Colorspace:
+            {
+              ConvertRGBToDisplayP3(red,green,blue,&X,&Y,&Z);
+              break;
+            }
             case HCLColorspace:
             {
               ConvertRGBToHCL(red,green,blue,&X,&Y,&Z);
@@ -747,6 +832,11 @@
               ConvertRGBToLuv(red,green,blue,&X,&Y,&Z);
               break;
             }
+            case ProPhotoColorspace:
+            {
+              ConvertRGBToProPhoto(red,green,blue,&X,&Y,&Z);
+              break;
+            }
             case xyYColorspace:
             {
               ConvertRGBToxyY(red,green,blue,&X,&Y,&Z);
@@ -869,10 +959,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -936,10 +1026,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -1182,13 +1272,13 @@
         PixelInfo
           pixel;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register unsigned int
+        unsigned int
           blue,
           green,
           red;
@@ -1244,7 +1334,7 @@
     }
     case PseudoClass:
     {
-      register unsigned int
+      unsigned int
         blue,
         green,
         red;
@@ -1941,7 +2031,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1989,10 +2079,10 @@
         PixelInfo
           pixel;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2045,10 +2135,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2106,10 +2196,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2142,7 +2232,9 @@
         return(MagickFalse);
       return(status);
     }
+    case Adobe98Colorspace:
     case CMYColorspace:
+    case DisplayP3Colorspace:
     case HCLColorspace:
     case HCLpColorspace:
     case HSBColorspace:
@@ -2157,6 +2249,7 @@
     case LCHuvColorspace:
     case LMSColorspace:
     case LuvColorspace:
+    case ProPhotoColorspace:
     case xyYColorspace:
     case XYZColorspace:
     case YCbCrColorspace:
@@ -2195,10 +2288,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2225,11 +2318,21 @@
           Z=QuantumScale*GetPixelBlue(image,q);
           switch (image->colorspace)
           {
+            case Adobe98Colorspace:
+            {
+              ConvertAdobe98ToRGB(X,Y,Z,&red,&green,&blue);
+              break;
+            }
             case CMYColorspace:
             {
               ConvertCMYToRGB(X,Y,Z,&red,&green,&blue);
               break;
             }
+            case DisplayP3Colorspace:
+            {
+              ConvertDisplayP3ToRGB(X,Y,Z,&red,&green,&blue);
+              break;
+            }
             case HCLColorspace:
             {
               ConvertHCLToRGB(X,Y,Z,&red,&green,&blue);
@@ -2296,6 +2399,11 @@
               ConvertLuvToRGB(X,Y,Z,&red,&green,&blue);
               break;
             }
+            case ProPhotoColorspace:
+            {
+              ConvertProPhotoToRGB(X,Y,Z,&red,&green,&blue);
+              break;
+            }
             case xyYColorspace:
             {
               ConvertxyYToRGB(X,Y,Z,&red,&green,&blue);
@@ -2421,10 +2529,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2487,10 +2595,10 @@
         MagickBooleanType
           sync;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2722,10 +2830,10 @@
         PixelInfo
           pixel;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -2739,7 +2847,7 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register size_t
+          size_t
             blue,
             green,
             red;
@@ -2805,7 +2913,7 @@
         PixelInfo
           pixel;
 
-        register size_t
+        size_t
           blue,
           green,
           red;
diff --git a/MagickCore/colorspace.h b/MagickCore/colorspace.h
index 7fa1b9c..482b133 100644
--- a/MagickCore/colorspace.h
+++ b/MagickCore/colorspace.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -58,7 +58,10 @@
   YPbPrColorspace,
   YUVColorspace,
   LinearGRAYColorspace,     /* Single Channel greyscale (linear) image */
-  JzazbzColorspace
+  JzazbzColorspace,
+  DisplayP3Colorspace,
+  Adobe98Colorspace,
+  ProPhotoColorspace
 } ColorspaceType;
 
 extern MagickExport ColorspaceType
diff --git a/MagickCore/compare.c b/MagickCore/compare.c
index 088e919..79f101c 100644
--- a/MagickCore/compare.c
+++ b/MagickCore/compare.c
@@ -17,7 +17,7 @@
 %                               December 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -108,7 +108,7 @@
 
 static size_t GetImageChannels(const Image *image)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -234,14 +234,14 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register Quantum
+    Quantum
       *magick_restrict r;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -264,7 +264,7 @@
       MagickStatusType
         difference;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -399,11 +399,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       j,
       x;
 
@@ -426,7 +426,7 @@
       MagickBooleanType
         difference;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -493,7 +493,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     j;
 
   size_t
@@ -518,11 +518,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -541,7 +541,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -608,7 +608,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     j;
 
   size_t
@@ -633,11 +633,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -656,7 +656,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -741,11 +741,11 @@
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -761,7 +761,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -824,7 +824,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     j;
 
   size_t
@@ -849,11 +849,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -872,7 +872,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -948,7 +948,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -985,11 +985,11 @@
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1016,11 +1016,11 @@
   area=PerceptibleReciprocal(area);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1151,11 +1151,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       j,
       x;
 
@@ -1175,7 +1175,7 @@
         Da,
         Sa;
 
-      register ssize_t
+      ssize_t
         i;
 
       if ((GetPixelReadMask(image,p) <= (QuantumRange/2)) ||
@@ -1241,7 +1241,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   status=GetMeanSquaredDistortion(image,reconstruct_image,distortion,exception);
@@ -1293,7 +1293,7 @@
     double
       difference;
 
-    register ssize_t
+    ssize_t
       i;
 
     difference=0.0;
@@ -1303,7 +1303,7 @@
         alpha,
         beta;
 
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) channel_phash[0].number_colorspaces; j++)
@@ -1338,7 +1338,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   status=GetMeanSquaredDistortion(image,reconstruct_image,distortion,exception);
@@ -1379,7 +1379,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1429,11 +1429,11 @@
     double
       channel_distortion[MaxPixelChannels+1];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -1460,11 +1460,11 @@
         y_pixel_mu[MaxPixelChannels+1],
         y_pixel_sigma_squared[MaxPixelChannels+1];
 
-      register const Quantum
+      const Quantum
         *magick_restrict reference,
         *magick_restrict target;
 
-      register MagickRealType
+      MagickRealType
         *k;
 
       ssize_t
@@ -1481,7 +1481,7 @@
       target=q;
       for (v=0; v < (ssize_t) kernel_info->height; v++)
       {
-        register ssize_t
+        ssize_t
           u;
 
         for (u=0; u < (ssize_t) kernel_info->width; u++)
@@ -1578,7 +1578,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   status=GetStructuralSimilarityDistortion(image,reconstruct_image,
@@ -1904,11 +1904,11 @@
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -1917,7 +1917,7 @@
       break;
     for (x=0; x < (ssize_t) columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2037,11 +2037,11 @@
   reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception);
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,columns,1,exception);
@@ -2050,7 +2050,7 @@
       break;
     for (x=0; x < (ssize_t) columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2220,10 +2220,10 @@
     double
       similarity;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2242,7 +2242,7 @@
       }
     for (x=0; x < (ssize_t) (image->columns-reference->columns+1); x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
diff --git a/MagickCore/compare.h b/MagickCore/compare.h
index 703bb4d..59f57a9 100644
--- a/MagickCore/compare.h
+++ b/MagickCore/compare.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/composite-private.h b/MagickCore/composite-private.h
index 0c3747c..a2205f9 100644
--- a/MagickCore/composite-private.h
+++ b/MagickCore/composite-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -57,7 +57,7 @@
     gamma,
     Sa;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
diff --git a/MagickCore/composite.c b/MagickCore/composite.c
index 28e2dfb..b06a2de 100644
--- a/MagickCore/composite.c
+++ b/MagickCore/composite.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -333,13 +333,13 @@
       canvas_pixel,
       source_pixel;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -391,7 +391,7 @@
         Sc,
         Sca;
 
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -624,13 +624,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *p;
 
-        register Quantum
+        Quantum
           *q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -646,7 +646,7 @@
           }
         for (x=0; x < (ssize_t) source_image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           if (GetPixelReadMask(source_image,p) <= (QuantumRange/2))
@@ -708,13 +708,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *p;
 
-        register Quantum
+        Quantum
           *q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -880,13 +880,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (((y+y_offset) < 0) || ((y+y_offset) >= (ssize_t) image->rows))
@@ -1051,13 +1051,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (((y+y_offset) < 0) || ((y+y_offset) >= (ssize_t) image->rows))
@@ -1231,13 +1231,13 @@
       canvas_pixel,
       source_pixel;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1294,7 +1294,7 @@
         Sc,
         Sca;
 
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -2547,7 +2547,7 @@
       */
       for (y=0; y < (ssize_t) image->rows; y+=(ssize_t) texture_image->rows)
       {
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -2597,14 +2597,14 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *p,
       *pixels;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *q;
 
     size_t
@@ -2623,7 +2623,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x+=(ssize_t) texture_image->columns)
     {
-      register ssize_t
+      ssize_t
         j;
 
       p=pixels;
@@ -2632,7 +2632,7 @@
         width=image->columns-x;
       for (j=0; j < (ssize_t) width; j++)
       {
-        register ssize_t
+        ssize_t
           i;
 
         for (i=0; i < (ssize_t) GetPixelChannels(texture_image); i++)
diff --git a/MagickCore/composite.h b/MagickCore/composite.h
index 75eb5a4..1050d26 100644
--- a/MagickCore/composite.h
+++ b/MagickCore/composite.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/compress.c b/MagickCore/compress.c
index af56c0f..d2cd639 100644
--- a/MagickCore/compress.c
+++ b/MagickCore/compress.c
@@ -17,7 +17,7 @@
 %                              May  1993                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -233,7 +233,7 @@
 {
 #define MaxLineExtent  36L
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -299,10 +299,10 @@
 
 MagickExport void Ascii85Encode(Image *image,const unsigned char code)
 {
-  register char
+  char
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -416,10 +416,10 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -497,10 +497,10 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; ((y < (ssize_t) image->rows) && (null_lines < 3)); )
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -716,14 +716,14 @@
   MagickBooleanType
     proceed;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -940,7 +940,7 @@
       next;
   } TableType;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1087,7 +1087,7 @@
   int
     count;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1239,7 +1239,7 @@
   int
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/compress.h b/MagickCore/compress.h
index 9118a8a..edc469b 100644
--- a/MagickCore/compress.h
+++ b/MagickCore/compress.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/configure-private.h b/MagickCore/configure-private.h
index d4ce832..4ab51b3 100644
--- a/MagickCore/configure-private.h
+++ b/MagickCore/configure-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/configure.c b/MagickCore/configure.c
index c4e5128..02d2daa 100644
--- a/MagickCore/configure.c
+++ b/MagickCore/configure.c
@@ -17,7 +17,7 @@
 %                                 July 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -253,7 +253,7 @@
 
 static void *DestroyConfigureElement(void *configure_info)
 {
-  register ConfigureInfo
+  ConfigureInfo
     *p;
 
   p=(ConfigureInfo *) configure_info;
@@ -349,7 +349,7 @@
 MagickExport const ConfigureInfo *GetConfigureInfo(const char *name,
   ExceptionInfo *exception)
 {
-  register const ConfigureInfo
+  const ConfigureInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -436,10 +436,10 @@
   const ConfigureInfo
     **options;
 
-  register const ConfigureInfo
+  const ConfigureInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -511,7 +511,7 @@
 
 static int ConfigureCompare(const void *x,const void *y)
 {
-  register char
+  char
     **p,
     **q;
 
@@ -530,10 +530,10 @@
   char
     **options;
 
-  register const ConfigureInfo
+  const ConfigureInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -759,7 +759,7 @@
     configure_path=GetEnvironmentValue("MAGICK_CONFIGURE_PATH");
     if (configure_path != (char *) NULL)
       {
-        register char
+        char
           *p,
           *q;
 
@@ -1053,7 +1053,7 @@
   const ConfigureInfo
     **configure_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/configure.h b/MagickCore/configure.h
index fbe39bf..523cc75 100644
--- a/MagickCore/configure.h
+++ b/MagickCore/configure.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/constitute-private.h b/MagickCore/constitute-private.h
index 73764c7..100c9cf 100644
--- a/MagickCore/constitute-private.h
+++ b/MagickCore/constitute-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index a9e9ee4..5ae318e 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -17,7 +17,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -140,7 +140,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -680,7 +680,7 @@
 
     next->taint=MagickFalse;
     GetPathComponent(magick_filename,MagickPath,magick_path);
-    if (*magick_path == '\0' && *next->magick == '\0')
+    if ((*magick_path == '\0') && (*next->magick == '\0'))
       (void) CopyMagickString(next->magick,magick,MagickPathExtent);
     (void) CopyMagickString(next->magick_filename,magick_filename,
       MagickPathExtent);
@@ -834,12 +834,14 @@
           if ((flags & LessValue) != 0)
             {
               if (next->delay < (size_t) floor(geometry_info.rho+0.5))
-                next->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+                next->ticks_per_second=CastDoubleToLong(floor(
+                  geometry_info.sigma+0.5));
             }
           else
             next->delay=(size_t) floor(geometry_info.rho+0.5);
         if ((flags & SigmaValue) != 0)
-          next->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+          next->ticks_per_second=CastDoubleToLong(floor(
+            geometry_info.sigma+0.5));
       }
     option=GetImageOption(image_info,"dispose");
     if (option != (const char *) NULL)
@@ -1000,7 +1002,7 @@
   size_t
     length;
 
-  register const char
+  const char
     *p;
 
   /*
@@ -1010,9 +1012,7 @@
   for (p=content; (*p != ',') && (*p != '\0'); p++) ;
   if (*p == '\0')
     ThrowReaderException(CorruptImageError,"CorruptImage");
-  p++;
-  length=0;
-  blob=Base64Decode(p,&length);
+  blob=Base64Decode(++p,&length);
   if (length == 0)
     {
       blob=(unsigned char *) RelinquishMagickMemory(blob);
@@ -1023,6 +1023,26 @@
     (void *) NULL);
   *read_info->filename='\0';
   *read_info->magick='\0';
+  for (p=content; (*p != '/') && (*p != '\0'); p++) ;
+  if (*p != '\0')
+    {
+      char
+        *q;
+
+      ssize_t
+        i;
+
+      /*
+        Extract media type.
+      */
+      if (LocaleNCompare(++p,"x-",2) == 0)
+        p+=2;
+      (void) strcpy(read_info->filename,"data.");
+      q=read_info->filename+5;
+      for (i=0; (*p != ';') && (*p != '\0') && (i < (MagickPathExtent-6)); i++)
+        *q++=(*p++);
+      *q++='\0';
+    }
   image=BlobToImage(read_info,blob,length,exception);
   blob=(unsigned char *) RelinquishMagickMemory(blob);
   read_info=DestroyImageInfo(read_info);
@@ -1356,7 +1376,7 @@
   MagickStatusType
     status;
 
-  register Image
+  Image
     *p;
 
   assert(image_info != (const ImageInfo *) NULL);
@@ -1383,7 +1403,7 @@
   p=images;
   for ( ; GetNextImageInList(p) != (Image *) NULL; p=GetNextImageInList(p))
   {
-    register Image
+    Image
       *next;
 
     next=GetNextImageInList(p);
@@ -1391,7 +1411,7 @@
       break;
     if (p->scene >= next->scene)
       {
-        register ssize_t
+        ssize_t
           i;
 
         /*
diff --git a/MagickCore/constitute.h b/MagickCore/constitute.h
index 775bd35..c205a6e 100644
--- a/MagickCore/constitute.h
+++ b/MagickCore/constitute.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c
index 1aa7ec3..d106aef 100644
--- a/MagickCore/decorate.c
+++ b/MagickCore/decorate.c
@@ -17,7 +17,7 @@
 %                                   July 1992                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -191,7 +191,7 @@
     shadow,
     trough;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -285,10 +285,10 @@
     frame_info->inner_bevel);
   if (height != 0)
     {
-      register ssize_t
+      ssize_t
         x;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       /*
@@ -387,10 +387,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     size_t
@@ -467,10 +467,10 @@
     frame_info->y-image->rows-bevel_width+frame_info->outer_bevel);
   if (height != 0)
     {
-      register ssize_t
+      ssize_t
         x;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       /*
@@ -663,11 +663,11 @@
 #endif
   for (y=0; y < (ssize_t) raise_info->height; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -739,11 +739,11 @@
 #endif
   for (y=(ssize_t) raise_info->height; y < (ssize_t) (image->rows-raise_info->height); y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -804,11 +804,11 @@
 #endif
   for (y=(ssize_t) (image->rows-raise_info->height); y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
diff --git a/MagickCore/decorate.h b/MagickCore/decorate.h
index d6177a3..d8e0dc8 100644
--- a/MagickCore/decorate.h
+++ b/MagickCore/decorate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/delegate-private.h b/MagickCore/delegate-private.h
index 6243466..e5e9f5a 100644
--- a/MagickCore/delegate-private.h
+++ b/MagickCore/delegate-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/delegate.c b/MagickCore/delegate.c
index 364bcb8..c3fab73 100644
--- a/MagickCore/delegate.c
+++ b/MagickCore/delegate.c
@@ -16,7 +16,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -273,7 +273,7 @@
 
 static void *DestroyDelegate(void *delegate_info)
 {
-  register DelegateInfo
+  DelegateInfo
     *p;
 
   p=(DelegateInfo *) delegate_info;
@@ -356,7 +356,7 @@
   PolicyRights
     rights;
 
-  register ssize_t
+  ssize_t
     i;
 
   status=(-1);
@@ -441,7 +441,7 @@
 #endif
 #elif defined(MAGICKCORE_WINDOWS_SUPPORT)
   {
-    register char
+    char
       *p;
 
     /*
@@ -531,7 +531,7 @@
   const char
     *q;
 
-  register char
+  char
     *p;
 
   static char
@@ -952,10 +952,10 @@
     *interpret_text,
     *string;
 
-  register char
+  char
     *q;  /* current position in interpret_text */
 
-  register const char
+  const char
     *p;  /* position in embed_text string being expanded */
 
   size_t
@@ -1110,7 +1110,7 @@
   const DelegateInfo
     *delegate_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image_info != (ImageInfo *) NULL);
@@ -1212,7 +1212,7 @@
 MagickExport const DelegateInfo *GetDelegateInfo(const char *decode,
   const char *encode,ExceptionInfo *exception)
 {
-  register const DelegateInfo
+  const DelegateInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -1331,10 +1331,10 @@
   const DelegateInfo
     **delegates;
 
-  register const DelegateInfo
+  const DelegateInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1409,7 +1409,7 @@
 
 static int DelegateCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -1428,10 +1428,10 @@
   char
     **delegates;
 
-  register const DelegateInfo
+  const DelegateInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1611,7 +1611,7 @@
   MagickBooleanType
     status;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -1693,7 +1693,7 @@
   PolicyRights
     rights;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1760,7 +1760,7 @@
       ImageInfo
         *clone_info;
 
-      register Image
+      Image
         *p;
 
       /*
@@ -1952,7 +1952,7 @@
   const char
     *path;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/delegate.h b/MagickCore/delegate.h
index 1f54145..8574e46 100644
--- a/MagickCore/delegate.h
+++ b/MagickCore/delegate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/deprecate.c b/MagickCore/deprecate.c
index b0badd2..587fce4 100644
--- a/MagickCore/deprecate.c
+++ b/MagickCore/deprecate.c
@@ -17,7 +17,7 @@
 %                                October 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -40,12 +40,16 @@
 /*
   Include declarations.
 */
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
-#define WIN32_LEAN_AND_MEAN
-#define VC_EXTRALEAN
-#include <windows.h>
-#endif
 #include "MagickCore/studio.h"
+#if defined(MAGICKCORE_WINGDI32_DELEGATE)
+#  if defined(__CYGWIN__)
+#    include <windows.h>
+#  else
+     /* All MinGW needs ... */
+#    include "MagickCore/nt-base-private.h"
+#    include <wingdi.h>
+#  endif
+#endif
 #include "MagickCore/property.h"
 #include "MagickCore/blob.h"
 #include "MagickCore/blob-private.h"
@@ -79,6 +83,7 @@
 #include "MagickCore/monitor.h"
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/morphology.h"
+#include "MagickCore/nt-feature.h"
 #include "MagickCore/paint.h"
 #include "MagickCore/pixel.h"
 #include "MagickCore/pixel-accessor.h"
@@ -128,7 +133,7 @@
     MagickTrue);
 }
 
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
+#if defined(MAGICKCORE_WINGDI32_DELEGATE)
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -180,10 +185,10 @@
   RectangleInfo
     page;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register RGBQUAD
+  RGBQUAD
     *q;
 
   RGBQUAD
@@ -251,7 +256,7 @@
   q=bitmap_bits;
   for (y=0; y < (ssize_t) page.height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,page.x,page.y+y,page.width,1,exception);
@@ -286,7 +291,7 @@
 }
 #endif
 
-#if defined(MAGICKCORE_WINDOWS_SUPPORT)
+#if defined(MAGICKCORE_WINGDI32_DELEGATE)
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -320,13 +325,13 @@
   HBITMAP
     bitmapH;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register RGBQUAD
+  RGBQUAD
     *q;
 
   RGBQUAD
diff --git a/MagickCore/deprecate.h b/MagickCore/deprecate.h
index 107e5e2..7c07bc9 100644
--- a/MagickCore/deprecate.h
+++ b/MagickCore/deprecate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -32,9 +32,11 @@
 extern MagickExport MagickBooleanType
   GetMagickSeekableStream(const MagickInfo *);
 
+#if defined(MAGICKCORE_WINGDI32_DELEGATE)
 extern MagickExport void
   *CropImageToHBITMAP(Image *,const RectangleInfo *,ExceptionInfo *),
   *ImageToHBITMAP(Image *,ExceptionInfo *);
+#endif
 
 #endif
 
diff --git a/MagickCore/display-private.h b/MagickCore/display-private.h
index 143493a..0bc9d0f 100644
--- a/MagickCore/display-private.h
+++ b/MagickCore/display-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/display.c b/MagickCore/display.c
index 601dc5e..8916fb0 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -17,7 +17,7 @@
 %                                July 1992                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1629,7 +1629,7 @@
   Image
     *image;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1843,10 +1843,10 @@
   KeySym
     key_symbol;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned int
@@ -3301,10 +3301,10 @@
     y,
     y_offset;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned int
@@ -4278,10 +4278,10 @@
       Quantum
         opacity;
 
-      register int
+      int
         x;
 
-      register Quantum
+      Quantum
         *q;
 
       /*
@@ -4596,7 +4596,7 @@
     crop_info,
     highlight_info;
 
-  register Quantum
+  Quantum
     *q;
 
   unsigned int
@@ -5434,7 +5434,7 @@
   RectangleInfo
     rectangle_info;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -7099,7 +7099,7 @@
   RectangleInfo
     page_geometry;
 
-  register int
+  int
     i;
 
   static char
@@ -8938,7 +8938,7 @@
         unique_file=close(unique_file)-1;
       else
         {
-          register const char
+          const char
             *p;
 
           file=fdopen(unique_file,"w");
@@ -9311,7 +9311,7 @@
   char
     text[MagickPathExtent];
 
-  register int
+  int
     x,
     y;
 
@@ -9670,10 +9670,10 @@
     y,
     y_offset;
 
-  register int
+  int
     i;
 
-  register Quantum
+  Quantum
     *q;
 
   unsigned int
@@ -10243,7 +10243,7 @@
         count,
         status;
 
-      register int
+      int
         i,
         j;
 
@@ -10344,7 +10344,7 @@
           char
             title[MagickPathExtent];
 
-          register int
+          int
             i;
 
           (void) FormatLocaleString(title,MagickPathExtent,
@@ -12049,7 +12049,7 @@
   double
     normalized_degrees;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -12697,7 +12697,7 @@
 
 static int XPredicate(Display *magick_unused(display),XEvent *event,char *data)
 {
-  register XWindows
+  XWindows
     *windows;
 
   windows=(XWindows *) data;
@@ -12714,7 +12714,7 @@
 static void XScreenEvent(Display *display,XWindows *windows,XEvent *event,
   ExceptionInfo *exception)
 {
-  register int
+  int
     x,
     y;
 
@@ -13101,11 +13101,11 @@
   double
     scale_factor;
 
-  register char
+  char
     *p,
     *q;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -13244,10 +13244,10 @@
       PixelInfo
         pixel;
 
-      register int
+      int
         j;
 
-      register Quantum
+      Quantum
         *s;
 
       /*
@@ -13467,7 +13467,7 @@
   RectangleInfo
     trim_info;
 
-  register int
+  int
     x,
     y;
 
@@ -13630,7 +13630,7 @@
   RectangleInfo
     geometry;
 
-  register int
+  int
     i;
 
   static char
@@ -14456,7 +14456,7 @@
   RectangleInfo
     geometry_info;
 
-  register int
+  int
     i;
 
   static char
diff --git a/MagickCore/display.h b/MagickCore/display.h
index d85440c..f596c68 100644
--- a/MagickCore/display.h
+++ b/MagickCore/display.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/distort.c b/MagickCore/distort.c
index be91ae1..9da7366 100644
--- a/MagickCore/distort.c
+++ b/MagickCore/distort.c
@@ -18,7 +18,7 @@
 %                                 June 2007                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -377,7 +377,7 @@
   double
     *coeff;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -1121,7 +1121,7 @@
       size_t
         nterms;   /* number of polynomial terms per number_values */
 
-      register ssize_t
+      ssize_t
         j;
 
       MagickBooleanType
@@ -1540,8 +1540,8 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-MagickExport Image *DistortResizeImage(const Image *image,
-  const size_t columns,const size_t rows,ExceptionInfo *exception)
+MagickExport Image *DistortResizeImage(const Image *image,const size_t columns,
+  const size_t rows,ExceptionInfo *exception)
 {
 #define DistortResizeImageTag  "Distort/Image"
 
@@ -1588,18 +1588,15 @@
   if (image->alpha_trait == UndefinedPixelTrait)
     {
       /*
-        Image has not transparency channel, so we free to use it
+        Image has no alpha channel, so we are free to use it.
       */
       (void) SetImageAlphaChannel(tmp_image,SetAlphaChannel,exception);
       resize_image=DistortImage(tmp_image,AffineDistortion,12,distort_args,
         MagickTrue,exception),
-
       tmp_image=DestroyImage(tmp_image);
       if (resize_image == (Image *) NULL)
         return((Image *) NULL);
-
-      (void) SetImageAlphaChannel(resize_image,DeactivateAlphaChannel,
-        exception);
+      (void) SetImageAlphaChannel(resize_image,OffAlphaChannel,exception);
     }
   else
     {
@@ -2048,7 +2045,7 @@
 
   /* Verbose output */
   if (IsStringTrue(GetImageArtifact(image,"verbose")) != MagickFalse) {
-    register ssize_t
+    ssize_t
        i;
     char image_gen[MagickPathExtent];
     const char *lookup;
@@ -2491,10 +2488,10 @@
         d,
         s;  /* transform destination image x,y  to source image x,y */
 
-      register ssize_t
+      ssize_t
         i;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       q=QueueCacheViewAuthenticPixels(distort_view,0,j,distort_image->columns,1,
@@ -2634,7 +2631,7 @@
           case PolynomialDistortion:
           {
             /* multi-ordered polynomial */
-            register ssize_t
+            ssize_t
               k;
 
             ssize_t
@@ -3105,7 +3102,7 @@
     switch (sparse_method) {
       case BarycentricColorInterpolate:
       {
-        register ssize_t x=0;
+        ssize_t x=0;
         (void) FormatLocaleFile(stderr, "Barycentric Sparse Color:\n");
         if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
           (void) FormatLocaleFile(stderr, "  -channel R -fx '%+lf*i %+lf*j %+lf' \\\n",
@@ -3128,7 +3125,7 @@
       }
       case BilinearColorInterpolate:
       {
-        register ssize_t x=0;
+        ssize_t x=0;
         (void) FormatLocaleFile(stderr, "Bilinear Sparse Color\n");
         if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
           (void) FormatLocaleFile(stderr, "   -channel R -fx '%+lf*i %+lf*j %+lf*i*j %+lf;\n",
@@ -3202,10 +3199,10 @@
       PixelInfo
         pixel;    /* pixel to assign to distorted image */
 
-      register ssize_t
+      ssize_t
         i;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       q=GetCacheViewAuthenticPixels(sparse_view,0,j,sparse_image->columns,
@@ -3223,7 +3220,7 @@
         {
           case BarycentricColorInterpolate:
           {
-            register ssize_t x=0;
+            ssize_t x=0;
             if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
               pixel.red     = coeff[x]*i +coeff[x+1]*j
                               +coeff[x+2], x+=3;
@@ -3245,7 +3242,7 @@
           }
           case BilinearColorInterpolate:
           {
-            register ssize_t x=0;
+            ssize_t x=0;
             if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
               pixel.red     = coeff[x]*i     + coeff[x+1]*j +
                               coeff[x+2]*i*j + coeff[x+3], x+=4;
@@ -3287,7 +3284,7 @@
               pixel.alpha=0.0;
             denominator = 0.0;
             for(k=0; k<number_arguments; k+=2+number_colors) {
-              register ssize_t x=(ssize_t) k+2;
+              ssize_t x=(ssize_t) k+2;
               double weight =
                   ((double)i-arguments[ k ])*((double)i-arguments[ k ])
                 + ((double)j-arguments[k+1])*((double)j-arguments[k+1]);
@@ -3337,7 +3334,7 @@
                   fabs((double)i-arguments[ k ])
                 + fabs((double)j-arguments[k+1]);
               if ( distance < minimum ) {
-                register ssize_t x=(ssize_t) k+2;
+                ssize_t x=(ssize_t) k+2;
                 if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
                   pixel.red=arguments[x++];
                 if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
@@ -3372,7 +3369,7 @@
                   ((double)i-arguments[ k ])*((double)i-arguments[ k ])
                 + ((double)j-arguments[k+1])*((double)j-arguments[k+1]);
               if ( distance < minimum ) {
-                register ssize_t x=(ssize_t) k+2;
+                ssize_t x=(ssize_t) k+2;
                 if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
                   pixel.red=arguments[x++];
                 if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
diff --git a/MagickCore/distort.h b/MagickCore/distort.h
index c168635..3145af4 100644
--- a/MagickCore/distort.h
+++ b/MagickCore/distort.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/distribute-cache-private.h b/MagickCore/distribute-cache-private.h
index c338429..3604ed3 100644
--- a/MagickCore/distribute-cache-private.h
+++ b/MagickCore/distribute-cache-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/distribute-cache.c b/MagickCore/distribute-cache.c
index 601cb0f..028d54f 100644
--- a/MagickCore/distribute-cache.c
+++ b/MagickCore/distribute-cache.c
@@ -22,7 +22,7 @@
 %                                January 2013                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -147,7 +147,7 @@
 static inline MagickOffsetType dpc_read(int file,const MagickSizeType length,
   unsigned char *magick_restrict message)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -162,7 +162,7 @@
   for (i=0; i < (MagickOffsetType) length; i+=count)
   {
     count=recv(file,CHAR_TYPE_CAST message+i,(LENGTH_TYPE) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX),0);
+      (MagickSizeType) LONG_MAX),0);
     if (count <= 0)
       {
         count=0;
@@ -278,7 +278,7 @@
   int
     argc;
 
-  register ssize_t
+  ssize_t
     i;
 
   static size_t
@@ -427,7 +427,7 @@
   MagickOffsetType
     count;
 
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
 #if !MAGICKCORE_HAVE_DISTRIBUTE_CACHE
@@ -442,7 +442,7 @@
   for (i=0; i < (MagickOffsetType) length; i+=count)
   {
     count=(MagickOffsetType) send(file,CHAR_TYPE_CAST message+i,(LENGTH_TYPE)
-      MagickMin(length-i,(MagickSizeType) SSIZE_MAX),MSG_NOSIGNAL);
+      MagickMin(length-i,(MagickSizeType) LONG_MAX),MSG_NOSIGNAL);
     if (count <= 0)
       {
         count=0;
@@ -484,7 +484,7 @@
   MagickSizeType
     length;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -552,10 +552,10 @@
   RectangleInfo
     region;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -609,10 +609,10 @@
   RectangleInfo
     region;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -671,10 +671,10 @@
   RectangleInfo
     region;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -729,10 +729,10 @@
   RectangleInfo
     region;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -784,7 +784,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   RandomInfo
@@ -912,7 +912,7 @@
   Not implemented!
 #endif
 
-  register struct addrinfo
+  struct addrinfo
     *p;
 
   SOCKET_TYPE
@@ -1134,7 +1134,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1223,7 +1223,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1236,7 +1236,7 @@
   assert(server_info->signature == MagickCoreSignature);
   assert(region != (RectangleInfo *) NULL);
   assert(metacontent != (unsigned char *) NULL);
-  if (length > (MagickSizeType) SSIZE_MAX)
+  if (length > (MagickSizeType) LONG_MAX)
     return(-1);
   p=message;
   *p++='R';
@@ -1298,7 +1298,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1311,7 +1311,7 @@
   assert(server_info->signature == MagickCoreSignature);
   assert(region != (RectangleInfo *) NULL);
   assert(pixels != (unsigned char *) NULL);
-  if (length > (MagickSizeType) SSIZE_MAX)
+  if (length > (MagickSizeType) LONG_MAX)
     return(-1);
   p=message;
   *p++='r';
@@ -1370,7 +1370,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1434,7 +1434,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1447,7 +1447,7 @@
   assert(server_info->signature == MagickCoreSignature);
   assert(region != (RectangleInfo *) NULL);
   assert(metacontent != (unsigned char *) NULL);
-  if (length > (MagickSizeType) SSIZE_MAX)
+  if (length > (MagickSizeType) LONG_MAX)
     return(-1);
   p=message;
   *p++='W';
@@ -1510,7 +1510,7 @@
   MagickOffsetType
     count;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned char
@@ -1523,7 +1523,7 @@
   assert(server_info->signature == MagickCoreSignature);
   assert(region != (RectangleInfo *) NULL);
   assert(pixels != (const unsigned char *) NULL);
-  if (length > (MagickSizeType) SSIZE_MAX)
+  if (length > (MagickSizeType) LONG_MAX)
     return(-1);
   p=message;
   *p++='w';
diff --git a/MagickCore/distribute-cache.h b/MagickCore/distribute-cache.h
index 1aef16c..47cf3d6 100644
--- a/MagickCore/distribute-cache.h
+++ b/MagickCore/distribute-cache.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/draw-private.h b/MagickCore/draw-private.h
index 9fb6ab8..1ec9abb 100644
--- a/MagickCore/draw-private.h
+++ b/MagickCore/draw-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index a344bf0..c2163be 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -18,7 +18,7 @@
 %                                 July 1998                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -335,7 +335,7 @@
     (void) CloneString(&clone_info->server_name,draw_info->server_name);
   if (draw_info->dash_pattern != (double *) NULL)
     {
-      register ssize_t
+      ssize_t
         x;
 
       for (x=0; fabs(draw_info->dash_pattern[x]) >= MagickEpsilon; x++) ;
@@ -417,7 +417,7 @@
 
 static PolygonInfo *DestroyPolygonInfo(PolygonInfo *polygon_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (polygon_info->edges != (EdgeInfo *) NULL)
@@ -445,7 +445,7 @@
     return(1); \
 }
 
-  register const PointInfo
+  const PointInfo
     *p,
     *q;
 
@@ -469,10 +469,10 @@
 
 static void LogPolygonInfo(const PolygonInfo *polygon_info)
 {
-  register EdgeInfo
+  EdgeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -502,7 +502,7 @@
   PointInfo
     point;
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) (number_points >> 1); i++)
@@ -530,7 +530,7 @@
   SegmentInfo
     bounds;
 
-  register ssize_t
+  ssize_t
     i,
     n;
 
@@ -818,7 +818,7 @@
 
 static void LogPathInfo(const PathInfo *path_info)
 {
-  register const PathInfo
+  const PathInfo
     *p;
 
   (void) LogMagickEvent(DrawEvent,GetMagickModule(),"    begin vector-path");
@@ -847,7 +847,7 @@
     p,
     q;
 
-  register ssize_t
+  ssize_t
     i,
     n;
 
@@ -1049,7 +1049,7 @@
     intercept,
     z;
 
-  register double
+  double
     x;
 
   SegmentInfo
@@ -1170,7 +1170,7 @@
     min,
     max;
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -1233,8 +1233,8 @@
   edge.y2=MagickMin(max.y,(double) image->rows-1.0);
   inverse_affine=InverseAffineMatrix(affine);
   GetPixelInfo(image,&zero);
-  start=(ssize_t) ceil(edge.y1-0.5);
-  stop=(ssize_t) floor(edge.y2+0.5);
+  start=CastDoubleToLong(ceil(edge.y1-0.5));
+  stop=CastDoubleToLong(floor(edge.y2+0.5));
   source_view=AcquireVirtualCacheView(source,exception);
   image_view=AcquireAuthenticCacheView(image,exception);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -1250,10 +1250,10 @@
     PointInfo
       point;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     SegmentInfo
@@ -1262,18 +1262,21 @@
     ssize_t
       x_offset;
 
+    if (status == MagickFalse)
+      continue;
     inverse_edge=AffineEdge(source,&inverse_affine,(double) y,&edge);
     if (inverse_edge.x2 < inverse_edge.x1)
       continue;
-    q=GetCacheViewAuthenticPixels(image_view,(ssize_t) ceil(inverse_edge.x1-
-      0.5),y,(size_t) (floor(inverse_edge.x2+0.5)-ceil(inverse_edge.x1-0.5)+1),
-      1,exception);
+    q=GetCacheViewAuthenticPixels(image_view,CastDoubleToLong(
+      ceil(inverse_edge.x1-0.5)),y,(size_t) CastDoubleToLong(floor(
+      inverse_edge.x2+0.5)-ceil(inverse_edge.x1-0.5)+1),1,exception);
     if (q == (Quantum *) NULL)
       continue;
     pixel=zero;
     composite=zero;
     x_offset=0;
-    for (x=(ssize_t) ceil(inverse_edge.x1-0.5); x <= (ssize_t) floor(inverse_edge.x2+0.5); x++)
+    for (x=CastDoubleToLong(ceil(inverse_edge.x1-0.5));
+         x <= CastDoubleToLong(floor(inverse_edge.x2+0.5)); x++)
     {
       point.x=(double) x*inverse_affine.sx+y*inverse_affine.ry+
         inverse_affine.tx;
@@ -1351,7 +1354,7 @@
   PrimitiveInfo
     primitive_info[6];
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -1757,11 +1760,11 @@
   PrimitiveInfo
     *dash_polygon;
 
-  register double
+  double
     dx,
     dy;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2056,10 +2059,10 @@
       composite,
       pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -2087,8 +2090,8 @@
         case UndefinedSpread:
         case PadSpread:
         {
-          if ((x != (ssize_t) ceil(gradient_vector->x1-0.5)) ||
-              (y != (ssize_t) ceil(gradient_vector->y1-0.5)))
+          if ((x != CastDoubleToLong(ceil(gradient_vector->x1-0.5))) ||
+              (y != CastDoubleToLong(ceil(gradient_vector->y1-0.5))))
             {
               offset=GetStopColorOffset(gradient,x,y);
               if (gradient->type != RadialGradient)
@@ -2115,8 +2118,8 @@
         }
         case ReflectSpread:
         {
-          if ((x != (ssize_t) ceil(gradient_vector->x1-0.5)) ||
-              (y != (ssize_t) ceil(gradient_vector->y1-0.5)))
+          if ((x != CastDoubleToLong(ceil(gradient_vector->x1-0.5))) ||
+              (y != CastDoubleToLong(ceil(gradient_vector->y1-0.5))))
             {
               offset=GetStopColorOffset(gradient,x,y);
               if (gradient->type != RadialGradient)
@@ -2157,8 +2160,8 @@
 
           antialias=MagickFalse;
           repeat=0.0;
-          if ((x != (ssize_t) ceil(gradient_vector->x1-0.5)) ||
-              (y != (ssize_t) ceil(gradient_vector->y1-0.5)))
+          if ((x != CastDoubleToLong(ceil(gradient_vector->x1-0.5))) ||
+              (y != CastDoubleToLong(ceil(gradient_vector->y1-0.5))))
             {
               offset=GetStopColorOffset(gradient,x,y);
               if (gradient->type == LinearGradient)
@@ -2277,7 +2280,7 @@
     *mvg_info->primitive_info,(size_t) extent,quantum);
   if (*mvg_info->primitive_info != (PrimitiveInfo *) NULL)
     {
-      register ssize_t
+      ssize_t
         i;
 
       *mvg_info->extent=(size_t) extent;
@@ -2311,9 +2314,6 @@
 
   q=sentinal;
   value=InterpretLocaleValue(string,q);
-  if ((IsNaN(value) != 0) || (value < -((double) SSIZE_MAX-512.0)) ||
-      (value > ((double) SSIZE_MAX-512.0)))
-    return(0.0);
   sentinal=q;
   return(value);
 }
@@ -2362,7 +2362,7 @@
       break;
     if (LocaleCompare("push",token) == 0)
       {
-        register const char
+        const char
           *end,
           *start;
 
@@ -2490,10 +2490,10 @@
   PrimitiveType
     primitive_type;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -3453,20 +3453,22 @@
                 (void) GetNextToken(q,&q,extent,token);
                 (void) CopyMagickString(name,token,MagickPathExtent);
                 (void) GetNextToken(q,&q,extent,token);
-                bounds.x=(ssize_t) ceil(GetDrawValue(token,&next_token)-0.5);
+                bounds.x=CastDoubleToLong(ceil(GetDrawValue(token,
+                  &next_token)-0.5));
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
                 (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
                   (void) GetNextToken(q,&q,extent,token);
-                bounds.y=(ssize_t) ceil(GetDrawValue(token,&next_token)-0.5);
+                bounds.y=CastDoubleToLong(ceil(GetDrawValue(token,
+                  &next_token)-0.5));
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
                 (void) GetNextToken(q,&q,extent,token);
                 if (*token == ',')
                   (void) GetNextToken(q,&q,extent,token);
-                bounds.width=(size_t) floor(GetDrawValue(token,&next_token)+
-                  0.5);
+                bounds.width=(size_t) CastDoubleToLong(floor(GetDrawValue(
+                  token,&next_token)+0.5));
                 if (token == next_token)
                   ThrowPointExpectedException(token,exception);
                 (void) GetNextToken(q,&q,extent,token);
@@ -3876,29 +3878,29 @@
         if (LocaleCompare("viewbox",keyword) == 0)
           {
             (void) GetNextToken(q,&q,extent,token);
-            graphic_context[n]->viewbox.x=(ssize_t) ceil(GetDrawValue(token,
-              &next_token)-0.5);
+            graphic_context[n]->viewbox.x=CastDoubleToLong(ceil(
+              GetDrawValue(token,&next_token)-0.5));
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
             (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
               (void) GetNextToken(q,&q,extent,token);
-            graphic_context[n]->viewbox.y=(ssize_t) ceil(GetDrawValue(token,
-              &next_token)-0.5);
+            graphic_context[n]->viewbox.y=CastDoubleToLong(ceil(
+              GetDrawValue(token,&next_token)-0.5));
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
             (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
               (void) GetNextToken(q,&q,extent,token);
-            graphic_context[n]->viewbox.width=(size_t) floor(GetDrawValue(
-              token,&next_token)+0.5);
+            graphic_context[n]->viewbox.width=(size_t) CastDoubleToLong(
+              floor(GetDrawValue(token,&next_token)+0.5));
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
             (void) GetNextToken(q,&q,extent,token);
             if (*token == ',')
               (void) GetNextToken(q,&q,extent,token);
-            graphic_context[n]->viewbox.height=(size_t) floor(GetDrawValue(
-              token,&next_token)+0.5);
+            graphic_context[n]->viewbox.height=(size_t) CastDoubleToLong(
+              floor(GetDrawValue(token,&next_token)+0.5));
             if (token == next_token)
               ThrowPointExpectedException(token,exception);
             break;
@@ -4071,7 +4073,7 @@
       case BezierPrimitive:
       {
         coordinates=(BezierQuantum*(double) primitive_info[j].coordinates);
-        if (primitive_info[j].coordinates > (108.0*BezierQuantum))
+        if (primitive_info[j].coordinates > (108*BezierQuantum))
           {
             (void) ThrowMagickException(exception,GetMagickModule(),DrawError,
               "TooManyBezierCoordinates","`%s'",token);
@@ -4603,7 +4605,7 @@
 
 static PolygonInfo **DestroyPolygonThreadSet(PolygonInfo **polygon_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(polygon_info != (PolygonInfo **) NULL);
@@ -4623,7 +4625,7 @@
   PolygonInfo
     **polygon_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -4654,7 +4656,7 @@
     EdgeInfo
       *edge_info;
 
-    register ssize_t
+    ssize_t
       j;
 
     polygon_info[i]=(PolygonInfo *) AcquireMagickMemory(
@@ -4701,11 +4703,11 @@
 
 static size_t DestroyEdge(PolygonInfo *polygon_info,const ssize_t edge)
 {
-  assert(edge < polygon_info->number_edges);
+  assert(edge < (ssize_t) polygon_info->number_edges);
   polygon_info->edges[edge].points=(PointInfo *) RelinquishMagickMemory(
     polygon_info->edges[edge].points);
   polygon_info->number_edges--;
-  if (edge < polygon_info->number_edges)
+  if (edge < (ssize_t) polygon_info->number_edges)
     (void) memmove(polygon_info->edges+edge,polygon_info->edges+edge+1,
       (size_t) (polygon_info->number_edges-edge)*sizeof(*polygon_info->edges));
   return(polygon_info->number_edges);
@@ -4724,13 +4726,13 @@
   PointInfo
     delta;
 
-  register const PointInfo
+  const PointInfo
     *q;
 
-  register EdgeInfo
+  EdgeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4902,10 +4904,10 @@
   PolygonInfo
     **magick_restrict polygon_info;
 
-  register EdgeInfo
+  EdgeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -4979,8 +4981,8 @@
       /*
         Draw point.
       */
-      start_y=(ssize_t) ceil(bounds.y1-0.5);
-      stop_y=(ssize_t) floor(bounds.y2+0.5);
+      start_y=CastDoubleToLong(ceil(bounds.y1-0.5));
+      stop_y=CastDoubleToLong(floor(bounds.y2+0.5));
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
       #pragma omp parallel for schedule(static) shared(status) \
         magick_number_threads(image,image,stop_y-start_y+1,1)
@@ -4993,10 +4995,10 @@
         PixelInfo
           pixel;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         ssize_t
@@ -5005,8 +5007,8 @@
 
         if (status == MagickFalse)
           continue;
-        start_x=(ssize_t) ceil(bounds.x1-0.5);
-        stop_x=(ssize_t) floor(bounds.x2+0.5);
+        start_x=CastDoubleToLong(ceil(bounds.x1-0.5));
+        stop_x=CastDoubleToLong(floor(bounds.x2+0.5));
         x=start_x;
         q=GetCacheViewAuthenticPixels(image_view,x,y,(size_t) (stop_x-x+1),1,
           exception);
@@ -5018,8 +5020,8 @@
         GetPixelInfo(image,&pixel);
         for ( ; x <= stop_x; x++)
         {
-          if ((x == (ssize_t) ceil(primitive_info->point.x-0.5)) &&
-              (y == (ssize_t) ceil(primitive_info->point.y-0.5)))
+          if ((x == CastDoubleToLong(ceil(primitive_info->point.x-0.5))) &&
+              (y == CastDoubleToLong(ceil(primitive_info->point.y-0.5))))
             {
               GetFillColor(draw_info,x-start_x,y-start_y,&pixel,exception);
               SetPixelViaPixelInfo(image,&pixel,q);
@@ -5040,8 +5042,8 @@
   /*
     Draw polygon or line.
   */
-  start_y=(ssize_t) ceil(bounds.y1-0.5);
-  stop_y=(ssize_t) floor(bounds.y2+0.5);
+  start_y=CastDoubleToLong(ceil(bounds.y1-0.5));
+  stop_y=CastDoubleToLong(floor(bounds.y2+0.5));
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel for schedule(static) shared(status) \
     magick_number_threads(image,image,stop_y-start_y+1,1)
@@ -5051,10 +5053,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -5063,8 +5065,8 @@
 
     if (status == MagickFalse)
       continue;
-    start_x=(ssize_t) ceil(bounds.x1-0.5);
-    stop_x=(ssize_t) floor(bounds.x2+0.5);
+    start_x=CastDoubleToLong(ceil(bounds.x1-0.5));
+    stop_x=CastDoubleToLong(floor(bounds.x2+0.5));
     q=GetCacheViewAuthenticPixels(image_view,start_x,y,(size_t) (stop_x-start_x+
       1),1,exception);
     if (q == (Quantum *) NULL)
@@ -5157,7 +5159,7 @@
     point,
     q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -5165,8 +5167,8 @@
     coordinates,
     y;
 
-  x=(ssize_t) ceil(primitive_info->point.x-0.5);
-  y=(ssize_t) ceil(primitive_info->point.y-0.5);
+  x=CastDoubleToLong(ceil(primitive_info->point.x-0.5));
+  y=CastDoubleToLong(ceil(primitive_info->point.y-0.5));
   switch (primitive_info->primitive)
   {
     case AlphaPrimitive:
@@ -5251,7 +5253,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -5279,8 +5281,8 @@
       status&=SetImageMask(image,CompositePixelMask,draw_info->composite_mask,
         exception);
     }
-  x=(ssize_t) ceil(primitive_info->point.x-0.5);
-  y=(ssize_t) ceil(primitive_info->point.y-0.5);
+  x=CastDoubleToLong(ceil(primitive_info->point.x-0.5));
+  y=CastDoubleToLong(ceil(primitive_info->point.y-0.5));
   image_view=AcquireAuthenticCacheView(image,exception);
   switch (primitive_info->primitive)
   {
@@ -5296,7 +5298,7 @@
           PixelInfo
             pixel;
 
-          register Quantum
+          Quantum
             *q;
 
           q=GetCacheViewAuthenticPixels(image_view,x,y,1,1,exception);
@@ -5318,7 +5320,7 @@
           GetPixelInfo(image,&pixel);
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5374,7 +5376,7 @@
 
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5406,7 +5408,7 @@
           PixelInfo
             pixel;
 
-          register Quantum
+          Quantum
             *q;
 
           q=GetCacheViewAuthenticPixels(image_view,x,y,1,1,exception);
@@ -5428,7 +5430,7 @@
             exception);
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5480,7 +5482,7 @@
           GetPixelInfo(image,&pixel);
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,
@@ -5558,8 +5560,8 @@
       composite_images=DestroyImageList(composite_images);
       (void) SetImageProgressMonitor(composite_image,(MagickProgressMonitor)
         NULL,(void *) NULL);
-      x1=(ssize_t) ceil(primitive_info[1].point.x-0.5);
-      y1=(ssize_t) ceil(primitive_info[1].point.y-0.5);
+      x1=CastDoubleToLong(ceil(primitive_info[1].point.x-0.5));
+      y1=CastDoubleToLong(ceil(primitive_info[1].point.y-0.5));
       if (((x1 != 0L) && (x1 != (ssize_t) composite_image->columns)) ||
           ((y1 != 0L) && (y1 != (ssize_t) composite_image->rows)))
         {
@@ -5603,7 +5605,7 @@
       PixelInfo
         fill_color;
 
-      register Quantum
+      Quantum
         *q;
 
       if ((y < 0) || (y >= (ssize_t) image->rows))
@@ -5760,7 +5762,7 @@
   PrimitiveInfo
     linecap[5];
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < 4; i++)
@@ -5790,7 +5792,7 @@
   PrimitiveInfo
     *stroke_polygon;
 
-  register const PrimitiveInfo
+  const PrimitiveInfo
     *p,
     *q;
 
@@ -6039,7 +6041,7 @@
   double
     r;
 
-  register ssize_t
+  ssize_t
     i;
 
   r=1.0;
@@ -6100,17 +6102,17 @@
     points[3],
     radii;
 
-  register double
+  double
     cosine,
     sine;
 
   PrimitiveInfo
     *primitive_info;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -6168,8 +6170,8 @@
   else
     if ((theta > 0.0) && (sweep == MagickFalse))
       theta-=2.0*MagickPI;
-  arc_segments=(size_t) ceil(fabs((double) (theta/(0.5*MagickPI+
-    MagickEpsilon))));
+  arc_segments=(size_t) CastDoubleToLong(ceil(fabs((double) (theta/(0.5*
+    MagickPI+MagickEpsilon)))));
   status=MagickTrue;
   p=primitive_info;
   for (i=0; i < (ssize_t) arc_segments; i++)
@@ -6245,10 +6247,10 @@
   PrimitiveInfo
     *primitive_info;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -6266,7 +6268,7 @@
     for (j=i+1; j < (ssize_t) number_coordinates; j++)
     {
       alpha=fabs(primitive_info[j].point.x-primitive_info[i].point.x);
-      if (alpha > (double) SSIZE_MAX)
+      if (alpha > (double) LONG_MAX)
         {
           (void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
             ResourceLimitError,"MemoryAllocationFailed","`%s'","");
@@ -6275,7 +6277,7 @@
       if (alpha > (double) quantum)
         quantum=(size_t) alpha;
       alpha=fabs(primitive_info[j].point.y-primitive_info[i].point.y);
-      if (alpha > (double) SSIZE_MAX)
+      if (alpha > (double) LONG_MAX)
         {
           (void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
             ResourceLimitError,"MemoryAllocationFailed","`%s'","");
@@ -6404,10 +6406,10 @@
   PrimitiveInfo
     *primitive_info;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -6518,10 +6520,10 @@
   PrimitiveType
     primitive_type;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -7005,10 +7007,10 @@
   PointInfo
     point;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   p=primitive_info;
@@ -7052,10 +7054,10 @@
   PrimitiveInfo
     *primitive_info;
 
-  register PrimitiveInfo
+  PrimitiveInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -7129,11 +7131,11 @@
   double
     distance;
 
-  register double
+  double
     dx,
     dy;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -7248,7 +7250,7 @@
     *polygon_primitive,
     *stroke_polygon;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -7524,8 +7526,8 @@
           theta.q=atan2(box_q[2].y-center.y,box_q[2].x-center.x);
           if (theta.q < theta.p)
             theta.q+=2.0*MagickPI;
-          arc_segments=(size_t) ceil((double) ((theta.q-theta.p)/
-            (2.0*sqrt((double) (1.0/mid)))));
+          arc_segments=(size_t) CastDoubleToLong(ceil((double) ((theta.
+            q-theta.p)/(2.0*sqrt((double) (1.0/mid))))));
           CheckPathExtent(MaxStrokePad,arc_segments+MaxStrokePad);
           stroke_q[q].x=box_q[1].x;
           stroke_q[q].y=box_q[1].y;
@@ -7597,8 +7599,8 @@
           theta.q=atan2(box_p[2].y-center.y,box_p[2].x-center.x);
           if (theta.p < theta.q)
             theta.p+=2.0*MagickPI;
-          arc_segments=(size_t) ceil((double) ((theta.p-theta.q)/
-            (2.0*sqrt((double) (1.0/mid)))));
+          arc_segments=(size_t) CastDoubleToLong(ceil((double) ((theta.p-
+            theta.q)/(2.0*sqrt((double) (1.0/mid))))));
           CheckPathExtent(arc_segments+MaxStrokePad,MaxStrokePad);
           stroke_p[p++]=box_p[1];
           for (j=1; j < (ssize_t) arc_segments; j++)
diff --git a/MagickCore/draw.h b/MagickCore/draw.h
index 40c44a3..4fe9e54 100644
--- a/MagickCore/draw.h
+++ b/MagickCore/draw.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index 5344bf5..4b450ca 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -17,7 +17,7 @@
 %                                 October 1996                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -152,7 +152,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -257,13 +257,13 @@
 #endif
   for (y=0; y < (ssize_t) blur_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict r;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -278,18 +278,18 @@
       }
     for (x=0; x < (ssize_t) blur_image->columns; x++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
         center,
         j;
 
-      j=(ssize_t) ceil((double) width*(1.0-QuantumScale*
-        GetPixelIntensity(edge_image,r))-0.5);
+      j=CastDoubleToLong(ceil((double) width*(1.0-QuantumScale*
+        GetPixelIntensity(edge_image,r))-0.5));
       if (j < 0)
         j=0;
       else
@@ -317,13 +317,13 @@
           blur_traits,
           traits;
 
-        register const double
+        const double
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -473,7 +473,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -578,13 +578,13 @@
 #endif
   for (y=0; y < (ssize_t) sharp_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict r;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -599,18 +599,18 @@
       }
     for (x=0; x < (ssize_t) sharp_image->columns; x++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
         center,
         j;
 
-      j=(ssize_t) ceil((double) width*(1.0-QuantumScale*
-        GetPixelIntensity(edge_image,r))-0.5);
+      j=CastDoubleToLong(ceil((double) width*(1.0-QuantumScale*
+        GetPixelIntensity(edge_image,r))-0.5));
       if (j < 0)
         j=0;
       else
@@ -638,13 +638,13 @@
           sharp_traits,
           traits;
 
-        register const double
+        const double
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -860,41 +860,38 @@
     PerceptibleReciprocal(Magick2PI*sigma*sigma));
 }
 
-static double **DestroyBilateralThreadSet(double **weights)
+static double **DestroyBilateralThreadSet(const ssize_t number_threads,
+  double **weights)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(weights != (double **) NULL);
-  for (i=0; i < (ssize_t) GetMagickResourceLimit(ThreadResource); i++)
+  for (i=0; i <= (ssize_t) number_threads; i++)
     if (weights[i] != (double *) NULL)
       weights[i]=(double *) RelinquishMagickMemory(weights[i]);
   weights=(double **) RelinquishMagickMemory(weights);
   return(weights);
 }
 
-static double **AcquireBilateralThreadSet(const size_t width,
-  const size_t height)
+static double **AcquireBilateralThreadSet(const size_t number_threads,
+  const size_t width,const size_t height)
 {
   double
     **weights;
 
-  register ssize_t
+  ssize_t
     i;
 
-  size_t
-    number_threads;
-
-  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
-  weights=(double **) AcquireQuantumMemory(number_threads,sizeof(*weights));
+  weights=(double **) AcquireQuantumMemory(number_threads+1,sizeof(*weights));
   if (weights == (double **) NULL)
     return((double **) NULL);
   (void) memset(weights,0,number_threads*sizeof(*weights));
-  for (i=0; i < (ssize_t) number_threads; i++)
+  for (i=0; i <= (ssize_t) number_threads; i++)
   {
     weights[i]=(double *) AcquireQuantumMemory(width,height*sizeof(**weights));
     if (weights[i] == (double *) NULL)
-      return(DestroyBilateralThreadSet(weights));
+      return(DestroyBilateralThreadSet(number_threads,weights));
   }
   return(weights);
 }
@@ -903,13 +900,16 @@
   const size_t height,const double intensity_sigma,const double spatial_sigma,
   ExceptionInfo *exception)
 {
-#define BilateralBlurImageTag  "Convolve/Image"
+#define MaxIntensity  (255)
+#define BilateralBlurImageTag  "Blur/Image"
 
   CacheView
     *blur_view,
     *image_view;
 
   double
+    intensity_gaussian[2*(MaxIntensity+1)],
+    *spatial_gaussian,
     **weights;
 
   Image
@@ -925,6 +925,15 @@
     mid;
 
   ssize_t
+    u;
+
+  ssize_t
+    n,
+    number_threads,
+    v;
+
+  ssize_t
+    i,
     y;
 
   assert(image != (const Image *) NULL);
@@ -941,19 +950,28 @@
       blur_image=DestroyImage(blur_image);
       return((Image *) NULL);
     }
-  weights=AcquireBilateralThreadSet(width,height);
+  number_threads=(size_t) GetMagickResourceLimit(ThreadResource);
+  weights=AcquireBilateralThreadSet(number_threads,width,height);
   if (weights == (double **) NULL)
     {
       blur_image=DestroyImage(blur_image);
       ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
     }
+  for (i=(-MaxIntensity); i < MaxIntensity; i++)
+    intensity_gaussian[i+MaxIntensity]=BlurGaussian((double) i,intensity_sigma);
+  spatial_gaussian=weights[number_threads];
+  n=0;
+  mid.x=(ssize_t) (width/2L);
+  mid.y=(ssize_t) (height/2L);
+  for (v=0; v < (ssize_t) height; v++)
+    for (u=0; u < (ssize_t) width; u++)
+      spatial_gaussian[n++]=BlurGaussian(BlurDistance(0,0,u-mid.x,v-mid.y),
+        spatial_sigma);
   /*
     Bilateral blur image.
   */
   status=MagickTrue;
   progress=0;
-  mid.x=(ssize_t) (width/2L);
-  mid.y=(ssize_t) (height/2L);
   image_view=AcquireVirtualCacheView(image,exception);
   blur_view=AcquireAuthenticCacheView(blur_image,exception);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
@@ -965,10 +983,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -986,11 +1004,11 @@
         gamma,
         pixel;
 
-      register const Quantum
+      const Quantum
         *magick_restrict p,
         *magick_restrict r;
 
-      register ssize_t
+      ssize_t
         i,
         u;
 
@@ -1005,19 +1023,26 @@
         exception);
       if (p == (const Quantum *) NULL)
         break;
-      p+=(ssize_t) GetPixelChannels(image)*width*mid.y+
-        GetPixelChannels(image)*mid.x;
+      p+=(ssize_t) GetPixelChannels(image)*width*mid.y+GetPixelChannels(image)*
+        mid.x;
       n=0;
       for (v=0; v < (ssize_t) height; v++)
       {
         for (u=0; u < (ssize_t) width; u++)
         {
+          double
+            intensity;
+
           r=p+(ssize_t) GetPixelChannels(image)*(ssize_t) width*(mid.y-v)+
             GetPixelChannels(image)*(mid.x-u);
-          weights[id][n]=BlurGaussian(ScaleQuantumToChar(
-            GetPixelIntensity(image,r))-(double) ScaleQuantumToChar(
-            GetPixelIntensity(image,p)),intensity_sigma)*BlurGaussian(
-            BlurDistance(x,y,x+u-mid.x,y+v-mid.y),spatial_sigma);
+          intensity=ScaleQuantumToChar(GetPixelIntensity(image,r))-
+            (double) ScaleQuantumToChar(GetPixelIntensity(image,p));
+          if ((intensity >= -MaxIntensity) && (intensity <= MaxIntensity))
+            weights[id][n]=intensity_gaussian[(ssize_t) intensity+MaxIntensity]*
+              spatial_gaussian[n];
+          else
+            weights[id][n]=BlurGaussian(intensity,intensity_sigma)*
+              BlurGaussian(BlurDistance(x,y,x+u-mid.x,y+v-mid.y),spatial_sigma);
           n++;
         }
       }
@@ -1109,7 +1134,7 @@
   blur_image->type=image->type;
   blur_view=DestroyCacheView(blur_view);
   image_view=DestroyCacheView(image_view);
-  weights=DestroyBilateralThreadSet(weights);
+  weights=DestroyBilateralThreadSet(number_threads,weights);
   if (status == MagickFalse)
     blur_image=DestroyImage(blur_image);
   return(blur_image);
@@ -1193,7 +1218,7 @@
   const ssize_t y_offset,const size_t columns,const size_t rows,
   const int polarity,Quantum *magick_restrict f,Quantum *magick_restrict g)
 {
-  register Quantum
+  Quantum
     *p,
     *q,
     *r,
@@ -1220,7 +1245,7 @@
     MagickRealType
       v;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -1254,7 +1279,7 @@
 #endif
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -1307,7 +1332,7 @@
     *magick_restrict buffer,
     *magick_restrict pixels;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1373,7 +1398,7 @@
       despeckle_traits,
       traits;
 
-    register ssize_t
+    ssize_t
       k,
       x;
 
@@ -1395,7 +1420,7 @@
     j=(ssize_t) image->columns+2;
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
       p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -1426,7 +1451,7 @@
       MagickBooleanType
         sync;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       q=GetCacheViewAuthenticPixels(despeckle_view,0,y,despeckle_image->columns,
@@ -1506,7 +1531,7 @@
   KernelInfo
     *kernel_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1590,7 +1615,7 @@
   KernelInfo
     *kernel_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1815,10 +1840,10 @@
 #endif
   for (y=0; y < (ssize_t) gaussian_image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1842,7 +1867,7 @@
         quadrant,
         target;
 
-      register size_t
+      size_t
         i;
 
       min_variance=MagickMaximumValue;
@@ -1858,7 +1883,7 @@
           mean[MaxPixelChannels],
           variance;
 
-        register ssize_t
+        ssize_t
           n;
 
         ssize_t
@@ -2095,7 +2120,7 @@
         *pix,
         *pixels;
 
-      register ssize_t
+      ssize_t
         y;
 
       ssize_t
@@ -2173,10 +2198,10 @@
         *pix,
         *pixels;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       ssize_t
@@ -2298,7 +2323,7 @@
     *kernel,
     normalize;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -2349,7 +2374,7 @@
   PointInfo
     point;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2377,8 +2402,10 @@
   point.y=(double) width*cos(DegreesToRadians(angle));
   for (i=0; i < (ssize_t) width; i++)
   {
-    offset[i].x=(ssize_t) ceil((double) (i*point.y)/hypot(point.x,point.y)-0.5);
-    offset[i].y=(ssize_t) ceil((double) (i*point.x)/hypot(point.x,point.y)-0.5);
+    offset[i].x=CastDoubleToLong(ceil((double) (i*point.y)/
+      hypot(point.x,point.y)-0.5));
+    offset[i].y=CastDoubleToLong(ceil((double) (i*point.x)/
+      hypot(point.x,point.y)-0.5));
   }
   /*
     Motion blur image.
@@ -2417,13 +2444,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2438,7 +2465,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2455,13 +2482,13 @@
           blur_traits,
           traits;
 
-        register const Quantum
+        const Quantum
           *magick_restrict r;
 
-        register MagickRealType
+        MagickRealType
           *magick_restrict k;
 
-        register ssize_t
+        ssize_t
           j;
 
         channel=GetPixelChannelChannel(image,i);
@@ -2612,7 +2639,7 @@
   RectangleInfo
     geometry;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -3135,7 +3162,7 @@
   PointInfo
     blur_center;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3205,13 +3232,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3232,7 +3259,7 @@
       PointInfo
         center;
 
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -3265,10 +3292,10 @@
           blur_traits,
           traits;
 
-        register const Quantum
+        const Quantum
           *magick_restrict r;
 
-        register ssize_t
+        ssize_t
           j;
 
         channel=GetPixelChannelChannel(image,i);
@@ -3413,7 +3440,7 @@
   MagickRealType
     *kernel;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3454,7 +3481,7 @@
         format[MagickPathExtent],
         *message;
 
-      register const MagickRealType
+      const MagickRealType
         *k;
 
       ssize_t
@@ -3527,14 +3554,14 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict l,
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3556,7 +3583,7 @@
       double
         intensity;
 
-      register ssize_t
+      ssize_t
         i;
 
       intensity=GetPixelIntensity(image,p+center);
@@ -3574,14 +3601,14 @@
           blur_traits,
           traits;
 
-        register const MagickRealType
+        const MagickRealType
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict luminance_pixels,
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -3806,16 +3833,16 @@
     PrimaryInfo
       normal;
 
-    register const Quantum
+    const Quantum
       *magick_restrict center,
       *magick_restrict p,
       *magick_restrict post,
       *magick_restrict pre;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3835,7 +3862,7 @@
     normal.z=2.0*(double) QuantumRange;  /* constant Z of surface normal */
     for (x=0; x < (ssize_t) linear_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -3984,7 +4011,7 @@
   KernelInfo
     *kernel_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -4144,10 +4171,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4291,13 +4318,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4312,7 +4339,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/effect.h b/MagickCore/effect.h
index 0b15bb3..2e95b65 100644
--- a/MagickCore/effect.h
+++ b/MagickCore/effect.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c
index ba1ca94..84dd212 100644
--- a/MagickCore/enhance.c
+++ b/MagickCore/enhance.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -120,7 +120,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   log_mean=log(0.5);
@@ -304,7 +304,7 @@
 {
 #define NumberCLAHEGrays  (65536)
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -351,7 +351,7 @@
   */
   do
   {
-    register size_t
+    size_t
       *p;
 
     size_t
@@ -380,10 +380,10 @@
   const RectangleInfo *tile_info,const size_t number_bins,
   const unsigned short *lut,const unsigned short *pixels,size_t *histogram)
 {
-  register const unsigned short
+  const unsigned short
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -420,7 +420,7 @@
   */
   for (y=(ssize_t) tile->height; y > 0; y--)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=(ssize_t) tile->width; x > 0; x--)
@@ -459,7 +459,7 @@
     scale,
     sum;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -483,7 +483,7 @@
   MemoryInfo
     *tile_cache;
 
-  register unsigned short
+  unsigned short
     *p;
 
   size_t
@@ -522,7 +522,7 @@
   p=pixels;
   for (y=0; y < (ssize_t) clahe_info->y; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) clahe_info->x; x++)
@@ -551,7 +551,7 @@
     RectangleInfo
       tile;
 
-    register ssize_t
+    ssize_t
       x;
 
     tile.height=tile_info->height;
@@ -698,10 +698,10 @@
   n=0;
   for (y=0; y < (ssize_t) clahe_info.height; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -743,10 +743,10 @@
   n=clahe_info.width*(tile_info.y >> 1);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -848,7 +848,7 @@
   PixelInfo
     *clut_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t adjust,
@@ -896,10 +896,10 @@
     PixelInfo
       pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1055,7 +1055,7 @@
   PixelInfo
     *cdl_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1291,10 +1291,10 @@
     double
       luma;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1413,7 +1413,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1466,10 +1466,10 @@
       green,
       red;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1569,7 +1569,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1613,10 +1613,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1652,7 +1652,7 @@
     double
       intensity;
 
-    register ssize_t
+    ssize_t
       j;
 
     black[i]=0.0;
@@ -1682,7 +1682,7 @@
     sizeof(*stretch_map));
   for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     for (j=0; j <= (ssize_t) MaxMap; j++)
@@ -1704,7 +1704,7 @@
   }
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         j;
 
       /*
@@ -1750,10 +1750,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1766,7 +1766,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -1911,13 +1911,13 @@
     PixelInfo
       pixel;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -1946,7 +1946,7 @@
       PixelInfo
         aggregate;
 
-      register const Quantum
+      const Quantum
         *magick_restrict r;
 
       GetPixelInfo(image,&aggregate);
@@ -2047,7 +2047,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2090,10 +2090,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2129,7 +2129,7 @@
     double
       intensity;
 
-    register ssize_t
+    ssize_t
       j;
 
     intensity=0.0;
@@ -2145,7 +2145,7 @@
   (void) memset(white,0,sizeof(*white));
   for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     black[i]=map[i];
@@ -2160,7 +2160,7 @@
   map=(double *) RelinquishMagickMemory(map);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         j;
 
       /*
@@ -2217,10 +2217,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2233,7 +2233,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -2325,7 +2325,7 @@
   Quantum
     *gamma_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2380,10 +2380,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2396,7 +2396,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -2511,10 +2511,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2739,10 +2739,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2916,7 +2916,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2960,10 +2960,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2976,7 +2976,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -3070,7 +3070,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -3112,10 +3112,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3128,7 +3128,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -3374,10 +3374,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -3649,7 +3649,7 @@
   MagickStatusType
     flags;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -3773,10 +3773,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3917,7 +3917,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -3957,10 +3957,10 @@
         MagickBooleanType
           sync;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -3974,7 +3974,7 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             j;
 
           if (IsPixelGray(image,q) == MagickFalse)
@@ -4018,10 +4018,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4034,7 +4034,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) GetPixelChannels(image); j++)
@@ -4270,7 +4270,7 @@
   */
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if( sharpen != MagickFalse )
@@ -4318,10 +4318,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4334,7 +4334,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -4412,12 +4412,11 @@
     a_mean,
     b_mean;
 
-  MagickBooleanType
-    status;
-
   MagickOffsetType
     progress;
 
+  MagickStatusType
+    status;
 
   ssize_t
     y;
@@ -4437,10 +4436,10 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4467,10 +4466,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -4535,11 +4534,12 @@
       black_point=geometry_info.rho;
       if ((flags & PercentValue) != 0)
         black_point*=(double) (QuantumRange/100.0);
-      channel_mask=SetImageChannelMask(image,aChannel | bChannel);
+      channel_mask=SetImageChannelMask(image,(ChannelType) (aChannel |
+        bChannel));
       status&=LevelImage(image,black_point,(double) QuantumRange-black_point,
         1.0,exception);
       (void) SetImageChannelMask(image,channel_mask);
     }
   status&=TransformImageColorspace(image,sRGBColorspace,exception);
-  return(status);
+  return(status != 0 ? MagickTrue : MagickFalse);
 }
diff --git a/MagickCore/enhance.h b/MagickCore/enhance.h
index fed87f2..c2bee01 100644
--- a/MagickCore/enhance.h
+++ b/MagickCore/enhance.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/exception-private.h b/MagickCore/exception-private.h
index 390b008..c9322a0 100644
--- a/MagickCore/exception-private.h
+++ b/MagickCore/exception-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/exception.c b/MagickCore/exception.c
index 305edcb..6456b11 100644
--- a/MagickCore/exception.c
+++ b/MagickCore/exception.c
@@ -17,7 +17,7 @@
 %                                July 1993                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -149,7 +149,7 @@
 
 static void *DestroyExceptionElement(void *exception)
 {
-  register ExceptionInfo
+  ExceptionInfo
     *p;
 
   p=(ExceptionInfo *) exception;
@@ -205,7 +205,7 @@
   LinkedListInfo
     *exceptions;
 
-  register const ExceptionInfo
+  const ExceptionInfo
     *p;
 
   ssize_t
@@ -687,7 +687,7 @@
 MagickExport void InheritException(ExceptionInfo *exception,
   const ExceptionInfo *relative)
 {
-  register const ExceptionInfo
+  const ExceptionInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -995,7 +995,7 @@
   LinkedListInfo
     *exceptions;
 
-  register ExceptionInfo
+  ExceptionInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
diff --git a/MagickCore/exception.h b/MagickCore/exception.h
index 0393490..fc2dcc2 100644
--- a/MagickCore/exception.h
+++ b/MagickCore/exception.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/feature.c b/MagickCore/feature.c
index 7162bca..7396d7b 100644
--- a/MagickCore/feature.c
+++ b/MagickCore/feature.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -165,10 +165,10 @@
   MagickBooleanType
     status;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   q=GetCacheViewAuthenticPixels(edge_view,x,y,1,1,exception);
@@ -315,10 +315,10 @@
 #endif
   for (y=0; y < (ssize_t) edge_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -339,7 +339,7 @@
         dx,
         dy;
 
-      register const Quantum
+      const Quantum
         *magick_restrict kernel_pixels;
 
       ssize_t
@@ -427,10 +427,10 @@
 #endif
   for (y=0; y < (ssize_t) edge_image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -522,7 +522,7 @@
   edge_view=AcquireAuthenticCacheView(edge_image,exception);
   for (y=0; y < (ssize_t) edge_image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -532,7 +532,7 @@
       CannyInfo
         pixel;
 
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
       /*
@@ -659,7 +659,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     r;
 
@@ -710,10 +710,10 @@
 #endif
   for (r=0; r < (ssize_t) image->rows; r++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -881,10 +881,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (r=0; r < (ssize_t) image->rows; r++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -1014,7 +1014,7 @@
     double
       normalize;
 
-    register ssize_t
+    ssize_t
       y;
 
     switch (i)
@@ -1056,7 +1056,7 @@
     normalize=PerceptibleReciprocal(normalize);
     for (y=0; y < (ssize_t) number_grays; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       for (x=0; x < (ssize_t) number_grays; x++)
@@ -1080,12 +1080,12 @@
 #endif
   for (i=0; i < 4; i++)
   {
-    register ssize_t
+    ssize_t
       y;
 
     for (y=0; y < (ssize_t) number_grays; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       for (x=0; x < (ssize_t) number_grays; x++)
@@ -1265,7 +1265,7 @@
 #endif
   for (i=0; i < 4; i++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=2; x < (ssize_t) (2*number_grays); x++)
@@ -1341,12 +1341,12 @@
 #endif
   for (i=0; i < 4; i++)
   {
-    register ssize_t
+    ssize_t
       y;
 
     for (y=0; y < (ssize_t) number_grays; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
       for (x=0; x < (ssize_t) number_grays; x++)
@@ -1456,7 +1456,7 @@
 #endif
   for (i=0; i < 4; i++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) number_grays; x++)
@@ -1613,7 +1613,7 @@
 
     for (z=0; z < (ssize_t) number_grays; z++)
     {
-      register ssize_t
+      ssize_t
         y;
 
       ChannelStatistics
@@ -1622,7 +1622,7 @@
       (void) memset(&pixel,0,sizeof(pixel));
       for (y=0; y < (ssize_t) number_grays; y++)
       {
-        register ssize_t
+        ssize_t
           x;
 
         for (x=0; x < (ssize_t) number_grays; x++)
@@ -1874,7 +1874,7 @@
   PointInfo
     center;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -1914,10 +1914,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1932,7 +1932,7 @@
     {
       if (GetPixelIntensity(image,p) > (QuantumRange/2.0))
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < 180; i++)
@@ -1999,7 +1999,7 @@
     line_count=threshold;
   for (y=0; y < (ssize_t) accumulator_height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) accumulator_width; x++)
@@ -2210,13 +2210,13 @@
 #endif
   for (y=0; y < (ssize_t) mean_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2239,7 +2239,7 @@
         mean_location,
         previous_location;
 
-      register ssize_t
+      ssize_t
         i;
 
       GetPixelInfo(image,&mean_pixel);
diff --git a/MagickCore/feature.h b/MagickCore/feature.h
index 75faa8e..997e36c 100644
--- a/MagickCore/feature.h
+++ b/MagickCore/feature.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/fourier.c b/MagickCore/fourier.c
index c035923..5c858af 100644
--- a/MagickCore/fourier.c
+++ b/MagickCore/fourier.c
@@ -19,7 +19,7 @@
 %                                 July 2009                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -247,17 +247,17 @@
 #endif
   for (y=0; y < (ssize_t) rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict Ai,
       *magick_restrict Ar,
       *magick_restrict Bi,
       *magick_restrict Br;
 
-    register Quantum
+    Quantum
       *magick_restrict Ci,
       *magick_restrict Cr;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -277,7 +277,7 @@
       }
     for (x=0; x < (ssize_t) columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) number_channels; i++)
@@ -412,7 +412,7 @@
   MemoryInfo
     *source_info;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -458,7 +458,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -488,7 +488,7 @@
 static void CorrectPhaseLHS(const size_t width,const size_t height,
   double *fourier_pixels)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -521,10 +521,10 @@
     *magnitude_info,
     *phase_info;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -712,10 +712,10 @@
     *forward_info,
     *source_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1083,7 +1083,7 @@
 static MagickBooleanType InverseQuadrantSwap(const size_t width,
   const size_t height,const double *source,double *destination)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -1125,10 +1125,10 @@
     *magnitude_info,
     *phase_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1324,10 +1324,10 @@
   MemoryInfo
     *source_info;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
diff --git a/MagickCore/fourier.h b/MagickCore/fourier.h
index 1f4add2..d206ec4 100644
--- a/MagickCore/fourier.h
+++ b/MagickCore/fourier.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/fx-private.h b/MagickCore/fx-private.h
index 8681ae9..44bce25 100644
--- a/MagickCore/fx-private.h
+++ b/MagickCore/fx-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index 2364176..0c6f928 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -18,7 +18,7 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -186,7 +186,7 @@
   FxInfo
     *fx_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -295,7 +295,7 @@
 */
 MagickPrivate FxInfo *DestroyFxInfo(FxInfo *fx_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   fx_info->exception=DestroyExceptionInfo(fx_info->exception);
@@ -392,7 +392,7 @@
   double
     statistic;
 
-  register const char
+  const char
     *p;
 
   channel_mask=UndefinedChannel;
@@ -507,7 +507,7 @@
   int
     c;
 
-  register size_t
+  size_t
     i;
 
   for (i=0; i <= length; i++)
@@ -515,16 +515,18 @@
       return(MagickFalse);
   c=expression[length];
   if ((LocaleNCompare(expression,name,length) == 0) &&
-      ((isspace(c) == 0) || (c == '(')))
+      ((isspace((int) ((unsigned char) c)) == 0) || (c == '(')))
     return(MagickTrue);
   return(MagickFalse);
 }
 
-static MagickOffsetType FxGCD(MagickOffsetType alpha,MagickOffsetType beta)
+static inline double FxGCD(const double alpha,const double beta)
 {
-  if (beta != 0)
-    return(FxGCD(beta,alpha % beta));
-  return(alpha);
+  if (alpha < beta) 
+    return(FxGCD(beta,alpha)); 
+  if (fabs(beta) < 0.001) 
+    return(alpha); 
+  return(FxGCD(beta,alpha-beta*floor(alpha/beta))); 
 }
 
 static inline const char *FxSubexpression(const char *expression,
@@ -533,7 +535,7 @@
   const char
     *subexpression;
 
-  register ssize_t
+  ssize_t
     level;
 
   level=0;
@@ -585,7 +587,7 @@
   PointInfo
     point;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1198,10 +1200,10 @@
     precedence,
     target;
 
-  register const char
+  const char
     *subexpression;
 
-  register int
+  int
     c;
 
   size_t
@@ -1255,7 +1257,7 @@
       case 'E':
       case 'e':
       {
-        if ((isdigit(c) != 0) &&
+        if ((isdigit((int) ((unsigned char) c)) != 0) &&
             ((LocaleNCompare(expression,"E+",2) == 0) ||
              (LocaleNCompare(expression,"E-",2) == 0)))
           {
@@ -1305,11 +1307,11 @@
         }
         default:
         {
-          if (((c != 0) && ((isdigit(c) != 0) ||
+          if (((c != 0) && ((isdigit((int) ((unsigned char) c)) != 0) ||
                (strchr(")",c) != (char *) NULL))) &&
               (((islower((int) ((unsigned char) *expression)) != 0) ||
                (strchr("(",(int) ((unsigned char) *expression)) != (char *) NULL)) ||
-               ((isdigit(c) == 0) &&
+               ((isdigit((int) ((unsigned char) c)) == 0) &&
                 (isdigit((int) ((unsigned char) *expression)) != 0))) &&
               (strchr("xy",(int) ((unsigned char) *expression)) == (char *) NULL))
             precedence=MultiplyPrecedence;
@@ -1326,7 +1328,7 @@
         case '-':
         {
           if ((strchr("(+-/*%:&^|<>~,",c) == (char *) NULL) ||
-              (isalpha(c) != 0))
+              (isalpha((int) ((unsigned char) c)) != 0))
             precedence=AdditionPrecedence;
           break;
         }
@@ -1485,7 +1487,7 @@
     sans,
     value;
 
-  register const char
+  const char
     *p;
 
   *beta=0.0;
@@ -2277,14 +2279,13 @@
         }
       if (IsFxFunction(expression,"gcd",3) != MagickFalse)
         {
-          MagickOffsetType
+          double
             gcd;
 
           alpha=FxEvaluateSubexpression(fx_info,channel,x,y,expression+3,
             depth+1,beta,exception);
-          gcd=FxGCD((MagickOffsetType) (alpha+0.5),(MagickOffsetType) (*beta+
-            0.5));
-          FxReturn((double) gcd);
+          gcd=FxGCD(alpha,*beta);
+          FxReturn(gcd);
         }
       if (LocaleCompare(expression,"g") == 0)
         FxReturn(FxGetSymbol(fx_info,channel,x,y,expression,depth+1,exception));
@@ -2738,7 +2739,7 @@
 
 static FxInfo **DestroyFxThreadSet(FxInfo **fx_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(fx_info != (FxInfo **) NULL);
@@ -2761,7 +2762,7 @@
   FxInfo
     **fx_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2859,13 +2860,13 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2879,7 +2880,7 @@
       }
     for (x=0; x < (ssize_t) fx_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
diff --git a/MagickCore/fx.h b/MagickCore/fx.h
index 33e7a68..be5f2d3 100644
--- a/MagickCore/fx.h
+++ b/MagickCore/fx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/gem-private.h b/MagickCore/gem-private.h
index 68439ca..0396b37 100644
--- a/MagickCore/gem-private.h
+++ b/MagickCore/gem-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -76,6 +76,50 @@
   ConvertRGBToLCHuv(const double,const double,const double,double *,double *,
     double *);
 
+static inline void ConvertAdobe98ToXYZ(const double red,const double green,
+  const double blue,double *X,double *Y,double *Z)
+{
+  double
+    b,
+    g,
+    r;
+
+  /*
+    Convert Adobe '98 to XYZ colorspace.
+  */
+  assert(X != (double *) NULL);
+  assert(Y != (double *) NULL);
+  assert(Z != (double *) NULL);
+  r=QuantumScale*DecodePixelGamma(red);
+  g=QuantumScale*DecodePixelGamma(green);
+  b=QuantumScale*DecodePixelGamma(blue);
+  *X=0.57666904291013050*r+0.18555823790654630*g+0.18822864623499470*b;
+  *Y=0.29734497525053605*r+0.62736356625546610*g+0.07529145849399788*b;
+  *Z=0.02703136138641234*r+0.07068885253582723*g+0.99133753683763880*b;
+}
+
+static inline void ConvertDisplayP3ToXYZ(const double red,const double green,
+  const double blue,double *X,double *Y,double *Z)
+{
+  double
+    b,
+    g,
+    r;
+
+  /*
+    Convert Display P3 to XYZ colorspace.
+  */
+  assert(X != (double *) NULL);
+  assert(Y != (double *) NULL);
+  assert(Z != (double *) NULL);
+  r=QuantumScale*DecodePixelGamma(red);
+  g=QuantumScale*DecodePixelGamma(green);
+  b=QuantumScale*DecodePixelGamma(blue);
+  *X=0.4865709486482162*r+0.26566769316909306*g+0.1982172852343625*b;
+  *Y=0.2289745640697488*r+0.69173852183650640*g+0.0792869140937450*b;
+  *Z=0.0000000000000000*r+0.04511338185890264*g+1.0439443689009760*b;
+}
+
 static inline void ConvertLabToXYZ(const double L,const double a,const double b,
   double *X,double *Y,double *Z)
 {
@@ -94,7 +138,7 @@
     x=(x*x*x);
   else
     x=(116.0*x-16.0)/CIEK;
-  if ((y*y*y) > CIEEpsilon)
+  if (L > (CIEK*CIEEpsilon))
     y=(y*y*y);
   else
     y=L/CIEK;
@@ -128,6 +172,28 @@
     5.0*(*Y);
 }
 
+static inline void ConvertProPhotoToXYZ(const double red,const double green,
+  const double blue,double *X,double *Y,double *Z)
+{
+  double
+    b,
+    g,
+    r;
+
+  /*
+    Convert ProPhoto to XYZ colorspace.
+  */
+  assert(X != (double *) NULL);
+  assert(Y != (double *) NULL);
+  assert(Z != (double *) NULL);
+  r=QuantumScale*DecodePixelGamma(red);
+  g=QuantumScale*DecodePixelGamma(green);
+  b=QuantumScale*DecodePixelGamma(blue);
+  *X=0.7977604896723027*r+0.13518583717574031*g+0.03134934958152480000*b;
+  *Y=0.2880711282292934*r+0.71184321781010140*g+0.00008565396060525902*b;
+  *Z=0.0000000000000000*r+0.00000000000000000*g+0.82510460251046010000*b;
+}
+
 static inline void ConvertRGBToXYZ(const double red,const double green,
   const double blue,double *X,double *Y,double *Z)
 {
@@ -150,6 +216,44 @@
   *Z=0.0193339*r+0.1191920*g+0.9503041*b;
 }
 
+static inline void ConvertXYZToAdobe98(const double X,const double Y,
+  const double Z,double *red,double *green,double *blue)
+{
+  double
+    b,
+    g,
+    r;
+
+  assert(red != (double *) NULL);
+  assert(green != (double *) NULL);
+  assert(blue != (double *) NULL);
+  r=2.041587903810746500*X-0.56500697427885960*Y-0.34473135077832956*Z;
+  g=(-0.969243636280879500)*X+1.87596750150772020*Y+0.04155505740717557*Z;
+  b=0.013444280632031142*X-0.11836239223101838*Y+1.01517499439120540*Z;
+  *red=EncodePixelGamma(QuantumRange*r);
+  *green=EncodePixelGamma(QuantumRange*g);
+  *blue=EncodePixelGamma(QuantumRange*b);
+}
+
+static inline void ConvertXYZToDisplayP3(const double X,const double Y,
+  const double Z,double *red,double *green,double *blue)
+{
+  double
+    b,
+    g,
+    r;
+
+  assert(red != (double *) NULL);
+  assert(green != (double *) NULL);
+  assert(blue != (double *) NULL);
+  r=2.49349691194142500*X-0.93138361791912390*Y-0.402710784450716840*Z;
+  g=(-0.82948896956157470)*X+1.76266406031834630*Y+0.023624685841943577*Z;
+  b=0.03584583024378447*X-0.07617238926804182*Y+0.956884524007687200*Z;
+  *red=EncodePixelGamma(QuantumRange*r);
+  *green=EncodePixelGamma(QuantumRange*g);
+  *blue=EncodePixelGamma(QuantumRange*b);
+}
+
 static inline void ConvertXYZToLab(const double X,const double Y,const double Z,
   double *L,double *a,double *b)
 {
@@ -199,6 +303,25 @@
   *v=(*v+140.0)/262.0;
 }
 
+static inline void ConvertXYZToProPhoto(const double X,const double Y,
+  const double Z,double *red,double *green,double *blue)
+{
+  double
+    b,
+    g,
+    r;
+
+  assert(red != (double *) NULL);
+  assert(green != (double *) NULL);
+  assert(blue != (double *) NULL);
+  r=1.3457989731028281*X-0.25558010007997534*Y-0.05110628506753401*Z;
+  g=(-0.5446224939028347)*X+1.50823274131327810*Y+0.02053603239147973*Z;
+  b=0.0000000000000000*X+0.0000000000000000*Y+1.21196754563894540*Z;
+  *red=EncodePixelGamma(QuantumRange*r);
+  *green=EncodePixelGamma(QuantumRange*g);
+  *blue=EncodePixelGamma(QuantumRange*b);
+}
+
 static inline void ConvertXYZToRGB(const double X,const double Y,const double Z,
   double *red,double *green,double *blue)
 {
diff --git a/MagickCore/gem.c b/MagickCore/gem.c
index 5767b57..b02cc94 100644
--- a/MagickCore/gem.c
+++ b/MagickCore/gem.c
@@ -17,7 +17,7 @@
 %                                 August 1996                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -675,7 +675,7 @@
     r,
     v;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -692,7 +692,7 @@
       *blue=QuantumRange*v;
       return;
     }
-  i=(ssize_t) floor(6.0*hue);
+  i=CastDoubleToLong(floor(6.0*hue));
   f=6.0*hue-i;
   if ((i & 0x01) != 0)
     f=1.0-f;
@@ -1578,7 +1578,7 @@
       double
         poisson;
 
-      register ssize_t
+      ssize_t
         i;
 
       poisson=exp(-SigmaPoisson*QuantumScale*pixel);
@@ -1640,7 +1640,7 @@
     normalize,
     value;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/gem.h b/MagickCore/gem.h
index 24d8df2..6381f3c 100644
--- a/MagickCore/gem.h
+++ b/MagickCore/gem.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/geometry.c b/MagickCore/geometry.c
index f11a3ef..402cf0e 100644
--- a/MagickCore/geometry.c
+++ b/MagickCore/geometry.c
@@ -17,7 +17,7 @@
 %                              January 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -464,7 +464,7 @@
   char
     page[MaxTextExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(page_geometry != (char *) NULL);
@@ -758,7 +758,7 @@
   MagickStatusType
     flags;
 
-  register ssize_t
+  ssize_t
     i;
 
   GetAffineMatrix(affine_matrix);
@@ -900,7 +900,7 @@
   for (p=pedantic_geometry; *p != '\0'; )
   {
     c=(int) ((unsigned char) *p);
-    if (isspace(c) != 0)
+    if (isspace((int) ((unsigned char) c)) != 0)
       {
         (void) CopyMagickString(p,p+1,MagickPathExtent);
         continue;
@@ -1419,8 +1419,8 @@
       scale.y=geometry_info.sigma;
       if ((percent_flags & SigmaValue) == 0)
         scale.y=scale.x;
-      *width=(size_t) MagickMax(floor(scale.x*former_width/100.0+0.5),1.0);
-      *height=(size_t) MagickMax(floor(scale.y*former_height/100.0+0.5),1.0);
+      *width=(size_t) floor(scale.x*former_width/100.0+0.5);
+      *height=(size_t) floor(scale.y*former_height/100.0+0.5);
       former_width=(*width);
       former_height=(*height);
     }
diff --git a/MagickCore/geometry.h b/MagickCore/geometry.h
index 40fcf62..989920f 100644
--- a/MagickCore/geometry.h
+++ b/MagickCore/geometry.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -55,8 +55,9 @@
   CorrelateNormalizeValue = 0x10000, /* '^' see ScaleKernelValue() */
   AreaValue = 0x20000,      /* '@'  resize to area - special use flag */
   DecimalValue = 0x40000,   /* '.'  floating point numbers found */
-  SeparatorValue = 0x80000, /* 'x'  separator found  */
-  AspectRatioValue = 0x100000,    /* '~'  special handling needed  */
+  SeparatorValue = 0x80000, /* 'x'  separator found */
+  AspectRatioValue = 0x100000,    /* '~'  special handling needed */
+  AlphaValue = 0x200000,    /* '/'  alpha */
 #undef AllValues
   AllValues = 0x7fffffff
 } GeometryFlags;
diff --git a/MagickCore/histogram.c b/MagickCore/histogram.c
index f5de234..2f2aff8 100644
--- a/MagickCore/histogram.c
+++ b/MagickCore/histogram.c
@@ -18,7 +18,7 @@
 %                                August 2009                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -195,15 +195,15 @@
   NodeInfo
     *node_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register size_t
+  size_t
     id,
     index,
     level;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -338,7 +338,7 @@
 static void DefineImageHistogram(const Image *image,NodeInfo *node_info,
   PixelInfo **histogram)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -353,7 +353,7 @@
       DefineImageHistogram(image,node_info->child[i],histogram);
   if (node_info->level == (MaxTreeDepth-1))
     {
-      register PixelInfo
+      PixelInfo
         *p;
 
       p=node_info->list;
@@ -392,7 +392,7 @@
 */
 static CubeInfo *DestroyCubeInfo(const Image *image,CubeInfo *cube_info)
 {
-  register Nodes
+  Nodes
     *nodes;
 
   /*
@@ -437,7 +437,7 @@
 */
 static void DestroyColorCube(const Image *image,NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -650,16 +650,16 @@
     pixel,
     target;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register NodeInfo
+  NodeInfo
     *node_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -904,7 +904,7 @@
     min,
     max;
 
-  register ssize_t
+  ssize_t
     i;
 
   MagickStatusType
@@ -1019,10 +1019,10 @@
   PixelInfo
     pixel;
 
-  register PixelInfo
+  PixelInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1072,7 +1072,7 @@
     (void) ConcatenateMagickString(tuple,")",MagickPathExtent);
     (void) QueryColorname(image,&pixel,SVGCompliance,color,exception);
     GetColorTuple(&pixel,MagickTrue,hex);
-    (void) sprintf(count,"%g:",(double) ((MagickOffsetType) p->count));
+    (void) sprintf(count,"%.20g:",(double) ((MagickOffsetType) p->count));
     (void) FormatLocaleFile(file,"    %s %s %s %s\n",count,tuple,hex,color);
     if (image->progress_monitor != (MagickProgressMonitor) NULL)
       {
@@ -1126,7 +1126,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1142,10 +1142,10 @@
         node_info->child[i],exception);
   if (node_info->level == (MaxTreeDepth-1))
     {
-      register PixelInfo
+      PixelInfo
         *p;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       status=MagickTrue;
diff --git a/MagickCore/histogram.h b/MagickCore/histogram.h
index 4c326b0..6f37479 100644
--- a/MagickCore/histogram.h
+++ b/MagickCore/histogram.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/identify.c b/MagickCore/identify.c
index 09eb141..9ebe381 100644
--- a/MagickCore/identify.c
+++ b/MagickCore/identify.c
@@ -17,7 +17,7 @@
 %                            September 1994                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -134,7 +134,7 @@
   ChannelStatistics
     *channel_statistics;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -169,10 +169,10 @@
   }
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -309,7 +309,7 @@
   n=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
     ssize_t
@@ -352,7 +352,7 @@
     powers[MaximumNumberOfImageMoments] =
       { 1.0, 2.0, 3.0, 3.0, 6.0, 4.0, 6.0, 4.0 };
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -383,7 +383,7 @@
 static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
   const ChannelPerceptualHash *channel_phash)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -407,7 +407,7 @@
     PixelTrait
       traits;
 
-    register ssize_t
+    ssize_t
       j;
 
     channel=GetPixelChannelChannel(image,i);
@@ -419,7 +419,7 @@
     n=FormatLocaleFile(file,"    Channel %.20g:\n",(double) channel);
     for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
     {
-      register ssize_t
+      ssize_t
         k;
 
       n+=FormatLocaleFile(file,"      PH%.20g: ",(double) j+1);
@@ -513,10 +513,10 @@
   MagickBooleanType
     ping;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1083,7 +1083,7 @@
           PixelInfo
             pixel;
 
-          register PixelInfo
+          PixelInfo
             *magick_restrict c;
 
           GetPixelInfo(image,&pixel);
@@ -1218,7 +1218,7 @@
       ImageInfo
         *image_info;
 
-      register char
+      char
         *d,
         *q;
 
@@ -1286,7 +1286,7 @@
       *bounding_box,
       *convex_hull;
 
-    register ssize_t
+    ssize_t
       n;
 
     size_t
@@ -1358,7 +1358,7 @@
               record,
               sentinel;
 
-            register ssize_t
+            ssize_t
               j;
 
             size_t
diff --git a/MagickCore/identify.h b/MagickCore/identify.h
index 28def6e..16b6d4a 100644
--- a/MagickCore/identify.h
+++ b/MagickCore/identify.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/image-private.h b/MagickCore/image-private.h
index 6cd48c2..b17823b 100644
--- a/MagickCore/image-private.h
+++ b/MagickCore/image-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -50,6 +50,17 @@
 #define UndefinedCompressionQuality  0UL
 #define UndefinedTicksPerSecond  100L
 
+static inline ssize_t CastDoubleToLong(const double value)
+{
+  if (IsNaN(value) != 0)
+    return(0);
+  if (value > (double) LONG_MAX)
+    return((ssize_t) LONG_MAX);
+  if (value < (double) LONG_MIN)
+    return((ssize_t) LONG_MIN);
+  return((ssize_t) value);
+}
+
 static inline double DegreesToRadians(const double degrees)
 {
   return((double) (MagickPI*degrees/180.0));
diff --git a/MagickCore/image-view.c b/MagickCore/image-view.c
index 2ac0022..8dc9e48 100644
--- a/MagickCore/image-view.c
+++ b/MagickCore/image-view.c
@@ -22,7 +22,7 @@
 %                                March 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -253,11 +253,11 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict duplex_pixels,
       *magick_restrict pixels;
 
-    register Quantum
+    Quantum
       *magick_restrict destination_pixels;
 
     if (status == MagickFalse)
@@ -563,7 +563,7 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *pixels;
 
     if (status == MagickFalse)
@@ -911,7 +911,7 @@
     MagickBooleanType
       sync;
 
-    register Quantum
+    Quantum
       *magick_restrict pixels;
 
     if (status == MagickFalse)
@@ -1040,10 +1040,10 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict pixels;
 
-    register Quantum
+    Quantum
       *magick_restrict destination_pixels;
 
     if (status == MagickFalse)
@@ -1169,7 +1169,7 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict pixels;
 
     if (status == MagickFalse)
diff --git a/MagickCore/image-view.h b/MagickCore/image-view.h
index ec4d168..6ac2cac 100644
--- a/MagickCore/image-view.h
+++ b/MagickCore/image-view.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/image.c b/MagickCore/image.c
index b9fb946..311d1fe 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -281,19 +281,23 @@
       flags=ParseGeometry(option,&geometry_info);
       if ((flags & GreaterValue) != 0)
         {
-          if (image->delay > (size_t) floor(geometry_info.rho+0.5))
-            image->delay=(size_t) floor(geometry_info.rho+0.5);
+          if ((double) image->delay > floor(geometry_info.rho+0.5))
+            image->delay=(size_t) CastDoubleToLong(floor(
+              geometry_info.rho+0.5));
         }
       else
         if ((flags & LessValue) != 0)
           {
-            if (image->delay < (size_t) floor(geometry_info.rho+0.5))
-              image->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+            if ((double) image->delay < floor(geometry_info.rho+0.5))
+              image->ticks_per_second=CastDoubleToLong(floor(
+                geometry_info.sigma+0.5));
           }
         else
-          image->delay=(size_t) floor(geometry_info.rho+0.5);
+          image->delay=(size_t) CastDoubleToLong(floor(
+            geometry_info.rho+0.5));
       if ((flags & SigmaValue) != 0)
-        image->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+        image->ticks_per_second=CastDoubleToLong(floor(
+          geometry_info.sigma+0.5));
     }
   option=GetImageOption(image_info,"dispose");
   if (option != (const char *) NULL)
@@ -442,7 +446,7 @@
   RectangleInfo
     geometry;
 
-  register const Image
+  const Image
     *next;
 
   size_t
@@ -541,13 +545,13 @@
       PixelInfo
         pixel;
 
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -877,15 +881,19 @@
   scale=1.0;
   if (image->columns != 0)
     scale=(double) columns/(double) image->columns;
-  clone_image->page.width=(size_t) floor(scale*image->page.width+0.5);
-  clone_image->page.x=(ssize_t) ceil(scale*image->page.x-0.5);
-  clone_image->tile_offset.x=(ssize_t) ceil(scale*image->tile_offset.x-0.5);
+  clone_image->page.width=(size_t) CastDoubleToLong(floor(scale*
+    image->page.width+0.5));
+  clone_image->page.x=CastDoubleToLong(ceil(scale*image->page.x-0.5));
+  clone_image->tile_offset.x=CastDoubleToLong(ceil(scale*
+    image->tile_offset.x-0.5));
   scale=1.0;
   if (image->rows != 0)
     scale=(double) rows/(double) image->rows;
-  clone_image->page.height=(size_t) floor(scale*image->page.height+0.5);
-  clone_image->page.y=(ssize_t) ceil(scale*image->page.y-0.5);
-  clone_image->tile_offset.y=(ssize_t) ceil(scale*image->tile_offset.y-0.5);
+  clone_image->page.height=(size_t) CastDoubleToLong(floor(scale*
+    image->page.height+0.5));
+  clone_image->page.y=CastDoubleToLong(ceil(scale*image->page.y-0.5));
+  clone_image->tile_offset.y=CastDoubleToLong(ceil(scale*
+    image->tile_offset.y-0.5));
   clone_image->cache=ClonePixelCache(image->cache);
   if (SetImageExtent(clone_image,columns,rows,exception) == MagickFalse)
     clone_image=DestroyImage(clone_image);
@@ -1073,13 +1081,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1095,7 +1103,7 @@
       }
     for (x=0; x < (ssize_t) geometry->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1468,13 +1476,13 @@
   mask_view=AcquireAuthenticCacheView(mask_image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1638,7 +1646,7 @@
   MagickBooleanType
     canonical;
 
-  register const char
+  const char
     *p;
 
   ssize_t
@@ -1687,10 +1695,10 @@
         const char
           *option;
 
-        register char
+        char
           *r;
 
-        register ssize_t
+        ssize_t
           i;
 
         ssize_t
@@ -1809,10 +1817,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1825,7 +1833,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1881,7 +1889,7 @@
 */
 MagickExport MagickBooleanType IsImageObject(const Image *image)
 {
-  register const Image
+  const Image
     *p;
 
   assert(image != (Image *) NULL);
@@ -1922,7 +1930,7 @@
     magick[MagickPathExtent],
     filename[MagickPathExtent];
 
-  register const Image
+  const Image
     *p;
 
   assert(image != (Image *) NULL);
@@ -2059,10 +2067,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2259,10 +2267,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2338,10 +2346,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2424,10 +2432,10 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2538,10 +2546,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2716,7 +2724,7 @@
   MagickBooleanType
     status;
 
-  register const char
+  const char
     *p;
 
   ssize_t
@@ -2804,7 +2812,7 @@
       MagickFormatType
         format_type;
 
-      register ssize_t
+      ssize_t
         i;
 
       static const char
@@ -3240,13 +3248,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3396,10 +3404,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3536,10 +3544,10 @@
     left_geometry,
     right_geometry;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     y;
 
@@ -3607,10 +3615,10 @@
     bottom_geometry,
     top_geometry;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -3687,7 +3695,7 @@
   RectangleInfo
     geometry;
 
-  register const Image
+  const Image
     *next;
 
   size_t
@@ -3902,10 +3910,10 @@
     Quantum
       index;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/image.h b/MagickCore/image.h
index 6e49079..fa71feb 100644
--- a/MagickCore/image.h
+++ b/MagickCore/image.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/layer.c b/MagickCore/layer.c
index 63bda6d..04851c0 100644
--- a/MagickCore/layer.c
+++ b/MagickCore/layer.c
@@ -16,7 +16,7 @@
 %                               January 2006                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -109,10 +109,10 @@
     (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception);
   for (y=0; y < (ssize_t) bounds->height; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetAuthenticPixels(image,bounds->x,bounds->y+y,bounds->width,1,exception);
@@ -165,11 +165,11 @@
 static MagickBooleanType IsBoundsCleared(const Image *image1,
   const Image *image2,RectangleInfo *bounds,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -233,7 +233,7 @@
     *dispose_image,
     *previous;
 
-  register Image
+  Image
     *next;
 
   RectangleInfo
@@ -402,7 +402,7 @@
   RectangleInfo
     bounds;
 
-  register Image
+  Image
     *image,
     *next;
 
@@ -619,11 +619,11 @@
     pixel1,
     pixel2;
 
-  register const Quantum
+  const Quantum
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -773,10 +773,10 @@
   RectangleInfo
     *bounds;
 
-  register const Image
+  const Image
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (const Image *) NULL);
@@ -961,10 +961,10 @@
   DisposeType
     *disposals;
 
-  register const Image
+  const Image
     *curr;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (const Image *) NULL);
@@ -1491,7 +1491,7 @@
   Image
     *dispose_image;
 
-  register Image
+  Image
     *next;
 
   /*
@@ -1619,7 +1619,7 @@
   RectangleInfo
     bounds;
 
-  register Image
+  Image
     *image,
     *next;
 
@@ -1949,7 +1949,7 @@
   RectangleInfo
     page;
 
-  register const Image
+  const Image
     *next;
 
   size_t
diff --git a/MagickCore/layer.h b/MagickCore/layer.h
index 3bc534d..daed925 100644
--- a/MagickCore/layer.h
+++ b/MagickCore/layer.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/linked-list.c b/MagickCore/linked-list.c
index b23d60d..64a0d92 100644
--- a/MagickCore/linked-list.c
+++ b/MagickCore/linked-list.c
@@ -17,7 +17,7 @@
 %                               December 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -111,7 +111,7 @@
 MagickExport MagickBooleanType AppendValueToLinkedList(
   LinkedListInfo *list_info,const void *value)
 {
-  register ElementInfo
+  ElementInfo
     *next;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -168,7 +168,7 @@
   ElementInfo
     *element;
 
-  register ElementInfo
+  ElementInfo
     *next;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -222,7 +222,7 @@
   ElementInfo
     *entry;
 
-  register ElementInfo
+  ElementInfo
     *next;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -382,10 +382,10 @@
 MagickExport void *GetValueFromLinkedList(LinkedListInfo *list_info,
   const size_t index)
 {
-  register ElementInfo
+  ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   void
@@ -447,10 +447,10 @@
 MagickExport MagickBooleanType InsertValueInLinkedList(
   LinkedListInfo *list_info,const size_t index,const void *value)
 {
-  register ElementInfo
+  ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -552,10 +552,10 @@
   ElementInfo
     *element;
 
-  register ElementInfo
+  ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -666,10 +666,10 @@
 MagickExport MagickBooleanType LinkedListToArray(LinkedListInfo *list_info,
   void **array)
 {
-  register ElementInfo
+  ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(list_info != (LinkedListInfo *) NULL);
@@ -831,7 +831,7 @@
   ElementInfo
     *next;
 
-  register ssize_t
+  ssize_t
     i;
 
   void
diff --git a/MagickCore/linked-list.h b/MagickCore/linked-list.h
index 7d6dcbd..552fa0c 100644
--- a/MagickCore/linked-list.h
+++ b/MagickCore/linked-list.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/list.c b/MagickCore/list.c
index 8ca4c14..b8795cf 100644
--- a/MagickCore/list.c
+++ b/MagickCore/list.c
@@ -17,7 +17,7 @@
 %                               December 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -79,7 +79,7 @@
 */
 MagickExport void AppendImageToList(Image **images,const Image *append)
 {
-  register Image
+  Image
     *p,
     *q;
 
@@ -131,7 +131,7 @@
     *clone,
     *image;
 
-  register Image
+  Image
     *p;
 
   if (images == (Image *) NULL)
@@ -219,7 +219,7 @@
     *clone_images,
     *image;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -383,7 +383,7 @@
   MagickBooleanType
     *delete_list;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -527,7 +527,7 @@
     *clone_images,
     *duplicate_images;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -573,7 +573,7 @@
 */
 MagickExport Image *GetFirstImageInList(const Image *images)
 {
-  register const Image
+  const Image
     *p;
 
   if (images == (Image *) NULL)
@@ -617,10 +617,10 @@
 */
 MagickExport Image *GetImageFromList(const Image *images,const ssize_t index)
 {
-  register const Image
+  const Image
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (images == (Image *) NULL)
@@ -669,7 +669,7 @@
 */
 MagickExport ssize_t GetImageIndexInList(const Image *images)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (images == (const Image *) NULL)
@@ -708,7 +708,7 @@
 */
 MagickExport size_t GetImageListLength(const Image *images)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (images == (Image *) NULL)
@@ -749,7 +749,7 @@
 */
 MagickExport Image *GetLastImageInList(const Image *images)
 {
-  register const Image
+  const Image
     *p;
 
   if (images == (Image *) NULL)
@@ -860,7 +860,7 @@
   Image
     **group;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (images == (Image *) NULL)
@@ -1015,7 +1015,7 @@
 */
 MagickExport Image *RemoveImageFromList(Image **images)
 {
-  register Image
+  Image
     *p;
 
   assert(images != (Image **) NULL);
@@ -1296,7 +1296,7 @@
   Image
     *next;
 
-  register Image
+  Image
     *p;
 
   assert(images != (Image **) NULL);
@@ -1351,7 +1351,7 @@
     *image,
     *split;
 
-  register size_t
+  size_t
     i;
 
   assert(images != (Image **) NULL);
@@ -1429,7 +1429,7 @@
 */
 MagickExport void SyncImageList(Image *images)
 {
-  register Image
+  Image
     *p,
     *q;
 
diff --git a/MagickCore/list.h b/MagickCore/list.h
index 522a296..12b73ea 100644
--- a/MagickCore/list.h
+++ b/MagickCore/list.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/locale-private.h b/MagickCore/locale-private.h
index 58e855c..c50a403 100644
--- a/MagickCore/locale-private.h
+++ b/MagickCore/locale-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/locale.c b/MagickCore/locale.c
index 70ed2ca..655e962 100644
--- a/MagickCore/locale.c
+++ b/MagickCore/locale.c
@@ -17,7 +17,7 @@
 %                                 July 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -169,7 +169,7 @@
 
 static void *DestroyLocaleNode(void *locale_info)
 {
-  register LocaleInfo
+  LocaleInfo
     *p;
 
   p=(LocaleInfo *) locale_info;
@@ -584,10 +584,10 @@
   const LocaleInfo
     **messages;
 
-  register const LocaleInfo
+  const LocaleInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -660,7 +660,7 @@
 
 static int LocaleTagCompare(const void *x,const void *y)
 {
-  register char
+  char
     **p,
     **q;
 
@@ -679,10 +679,10 @@
   char
     **messages;
 
-  register const LocaleInfo
+  const LocaleInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -914,7 +914,7 @@
           char
             *locale;
 
-          register const char
+          const char
             *p;
 
           locale=(char *) NULL;
@@ -1032,7 +1032,7 @@
   const LocaleInfo
     **locale_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1104,7 +1104,7 @@
 
 static void ChopLocaleComponents(char *path,const size_t components)
 {
-  register char
+  char
     *p;
 
   ssize_t
@@ -1162,7 +1162,7 @@
   MagickStatusType
     status;
 
-  register char
+  char
     *p;
 
   size_t
@@ -1411,7 +1411,7 @@
   if (q == (char *) NULL)
     return(1);
   {
-    register const unsigned char
+    const unsigned char
       *r = (const unsigned char *) p,
       *s = (const unsigned char *) q;
 
@@ -1446,7 +1446,7 @@
 */
 MagickExport void LocaleLower(char *string)
 {
-  register char
+  char
     *q;
 
   assert(string != (char *) NULL);
@@ -1482,9 +1482,9 @@
     return(c);
 #if defined(MAGICKCORE_LOCALE_SUPPORT)
   if (c_locale != (locale_t) NULL)
-    return(tolower_l(c,c_locale));
+    return(tolower_l((int) ((unsigned char) c),c_locale));
 #endif
-  return(tolower(c));
+  return(tolower((int) ((unsigned char) c)));
 }
 
 /*
@@ -1537,11 +1537,11 @@
   if (length == 0)
     return(0);
   {
-    register const unsigned char
+    const unsigned char
       *s = (const unsigned char *) p,
       *t = (const unsigned char *) q;
 
-    register size_t
+    size_t
       n = length;
 
     for (n--; (*s != '\0') && (*t != '\0') && (n != 0) && ((*s == *t) ||
@@ -1575,7 +1575,7 @@
 */
 MagickExport void LocaleUpper(char *string)
 {
-  register char
+  char
     *q;
 
   assert(string != (char *) NULL);
diff --git a/MagickCore/locale_.h b/MagickCore/locale_.h
index 3e7ed95..abb92a1 100644
--- a/MagickCore/locale_.h
+++ b/MagickCore/locale_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/log-private.h b/MagickCore/log-private.h
index b1a2edd..5bcfe7b 100644
--- a/MagickCore/log-private.h
+++ b/MagickCore/log-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/log.c b/MagickCore/log.c
index 1b2c02c..2c34e8b 100644
--- a/MagickCore/log.c
+++ b/MagickCore/log.c
@@ -17,7 +17,7 @@
 %                                September 2002                               %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -273,7 +273,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -308,7 +308,7 @@
     LogInfo
       *log_info;
 
-    register const LogMapInfo
+    const LogMapInfo
       *p;
 
     p=LogMap+i;
@@ -403,7 +403,7 @@
 */
 static LogInfo *GetLogInfo(const char *name,ExceptionInfo *exception)
 {
-  register LogInfo
+  LogInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -487,10 +487,10 @@
   const LogInfo
     **preferences;
 
-  register const LogInfo
+  const LogInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -561,7 +561,7 @@
 
 static int LogCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -580,10 +580,10 @@
   char
     **preferences;
 
-  register const LogInfo
+  const LogInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -761,7 +761,7 @@
   const LogInfo
     **log_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1123,7 +1123,7 @@
 
 static void *DestroyLogElement(void *log_info)
 {
-  register LogInfo
+  LogInfo
     *p;
 
   p=(LogInfo *) log_info;
@@ -1206,10 +1206,10 @@
   LogInfo
     *log_info;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -1360,7 +1360,7 @@
       }
       case 'm':
       {
-        register const char
+        const char
           *r;
 
         for (r=module+strlen(module)-1; r > module; r--)
@@ -1426,10 +1426,10 @@
   char
     *filename;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -1704,10 +1704,10 @@
   LogHandlerType
     handler_mask;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/log.h b/MagickCore/log.h
index 88054d4..8421e7b 100644
--- a/MagickCore/log.h
+++ b/MagickCore/log.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/magic-private.h b/MagickCore/magic-private.h
index 4b6747a..9723620 100644
--- a/MagickCore/magic-private.h
+++ b/MagickCore/magic-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/magic.c b/MagickCore/magic.c
index 56d32fc..cb8e285 100644
--- a/MagickCore/magic.c
+++ b/MagickCore/magic.c
@@ -17,7 +17,7 @@
 %                                 July 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -181,7 +181,7 @@
       else
         return((int) (ma->offset-mb->offset));
     }
-  return((int) (mb->length-ma->length));
+  return((int) (mb->length-(ssize_t) ma->length));
 }
 
 static LinkedListInfo *AcquireMagicList(ExceptionInfo *exception)
@@ -192,7 +192,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   list=NewLinkedList(0);
@@ -205,7 +205,7 @@
     MagicInfo
       *magic_info;
 
-    register const MagicMapInfo
+    const MagicMapInfo
       *p;
 
     p=MagicMap+i;
@@ -280,7 +280,7 @@
 MagickExport const MagicInfo *GetMagicInfo(const unsigned char *magic,
   const size_t length,ExceptionInfo *exception)
 {
-  register const MagicInfo
+  const MagicInfo
     *p;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -362,7 +362,7 @@
 */
 MagickExport size_t GetMagicPatternExtent(ExceptionInfo *exception)
 {
-  register const MagicInfo
+  const MagicInfo
     *p;
 
   size_t
@@ -447,10 +447,10 @@
   const MagicInfo
     **aliases;
 
-  register const MagicInfo
+  const MagicInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -523,7 +523,7 @@
 
 static int MagicCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     *p,
     *q;
 
@@ -542,10 +542,10 @@
   char
     **aliases;
 
-  register const MagicInfo
+  const MagicInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -679,7 +679,7 @@
   const MagicInfo
     **magic_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -775,7 +775,7 @@
 
 static void *DestroyMagicElement(void *magic_info)
 {
-  register MagicInfo
+  MagicInfo
     *p;
 
   p=(MagicInfo *) magic_info;
diff --git a/MagickCore/magic.h b/MagickCore/magic.h
index dc20ce8..d7496a2 100644
--- a/MagickCore/magic.h
+++ b/MagickCore/magic.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/magick-private.h b/MagickCore/magick-private.h
index 06c34ce..d4c5bdd 100644
--- a/MagickCore/magick-private.h
+++ b/MagickCore/magick-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/magick-type.h b/MagickCore/magick-type.h
index 9c97c3f..c3cde20 100644
--- a/MagickCore/magick-type.h
+++ b/MagickCore/magick-type.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/magick.c b/MagickCore/magick.c
index 0e60ffc..fc4f1cd 100644
--- a/MagickCore/magick.c
+++ b/MagickCore/magick.c
@@ -18,7 +18,7 @@
 %                             November 1998                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -296,7 +296,7 @@
   MagickBooleanType
     status;
 
-  register const MagickInfo
+  const MagickInfo
     *p;
 
   (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
@@ -610,7 +610,7 @@
 MagickExport const MagickInfo *GetMagickInfo(const char *name,
   ExceptionInfo *exception)
 {
-  register const MagickInfo
+  const MagickInfo
     *magick_info;
 
   /*
@@ -703,10 +703,10 @@
   const MagickInfo
     **formats;
 
-  register const MagickInfo
+  const MagickInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -777,7 +777,7 @@
 
 static int MagickCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -796,10 +796,10 @@
   char
     **formats;
 
-  register const MagickInfo
+  const MagickInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1067,7 +1067,7 @@
 
 static void *DestroyMagickNode(void *magick_info)
 {
-  register MagickInfo
+  MagickInfo
     *p;
 
   p=(MagickInfo *) magick_info;
@@ -1177,7 +1177,7 @@
   const MagickInfo
     **magick_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1803,7 +1803,7 @@
 */
 MagickExport MagickBooleanType UnregisterMagickInfo(const char *name)
 {
-  register const MagickInfo
+  const MagickInfo
     *p;
 
   MagickBooleanType
diff --git a/MagickCore/magick.h b/MagickCore/magick.h
index af55706..13eded4 100644
--- a/MagickCore/magick.h
+++ b/MagickCore/magick.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/matrix-private.h b/MagickCore/matrix-private.h
index 89a5734..d4a2914 100644
--- a/MagickCore/matrix-private.h
+++ b/MagickCore/matrix-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/matrix.c b/MagickCore/matrix.c
index 977081e..c06d8bd 100644
--- a/MagickCore/matrix.c
+++ b/MagickCore/matrix.c
@@ -17,7 +17,7 @@
 %                              August 2007                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -133,7 +133,7 @@
   const MatrixInfo *magick_restrict matrix_info,const MagickOffsetType offset,
   const MagickSizeType length,const unsigned char *magick_restrict buffer)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -152,10 +152,10 @@
   {
 #if !defined(MAGICKCORE_HAVE_PWRITE)
     count=write(matrix_info->file,buffer+i,(size_t) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX));
+      (MagickSizeType) LONG_MAX));
 #else
     count=pwrite(matrix_info->file,buffer+i,(size_t) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX),(off_t) (offset+i));
+      (MagickSizeType) LONG_MAX),(off_t) (offset+i));
 #endif
     if (count <= 0)
       {
@@ -320,7 +320,7 @@
   double
     **matrix;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -494,7 +494,7 @@
     max,
     scale;
 
-  register ssize_t
+  ssize_t
     i,
     j,
     k;
@@ -665,7 +665,7 @@
   const MatrixInfo *magick_restrict matrix_info,const MagickOffsetType offset,
   const MagickSizeType length,unsigned char *magick_restrict buffer)
 {
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   ssize_t
@@ -684,10 +684,10 @@
   {
 #if !defined(MAGICKCORE_HAVE_PREAD)
     count=read(matrix_info->file,buffer+i,(size_t) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX));
+      (MagickSizeType) LONG_MAX));
 #else
     count=pread(matrix_info->file,buffer+i,(size_t) MagickMin(length-i,
-      (MagickSizeType) SSIZE_MAX),(off_t) (offset+i));
+      (MagickSizeType) LONG_MAX),(off_t) (offset+i));
 #endif
     if (count <= 0)
       {
@@ -830,7 +830,7 @@
   const double *terms,const double *results,const size_t rank,
   const size_t number_vectors)
 {
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -902,7 +902,7 @@
   max_value=min_value;
   for (y=0; y < (ssize_t) matrix_info->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     for (x=0; x < (ssize_t) matrix_info->columns; x++)
@@ -947,10 +947,10 @@
     double
       value;
 
-    register Quantum
+    Quantum
       *q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1002,7 +1002,7 @@
 */
 MagickExport MagickBooleanType NullMatrix(MatrixInfo *matrix_info)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -1066,7 +1066,7 @@
 MagickExport double **RelinquishMagickMatrix(double **matrix,
   const size_t number_rows)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (matrix == (double **) NULL )
diff --git a/MagickCore/matrix.h b/MagickCore/matrix.h
index 0d7f970..66920fe 100644
--- a/MagickCore/matrix.h
+++ b/MagickCore/matrix.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/memory-private.h b/MagickCore/memory-private.h
index 405a531..0577a2f 100644
--- a/MagickCore/memory-private.h
+++ b/MagickCore/memory-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/memory.c b/MagickCore/memory.c
index f513b6f..ac846c6 100644
--- a/MagickCore/memory.c
+++ b/MagickCore/memory.c
@@ -17,7 +17,7 @@
 %                                 July 1998                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -377,7 +377,7 @@
 
 static inline size_t AllocationPolicy(size_t size)
 {
-  register size_t
+  size_t
     blocksize;
 
   /*
@@ -405,7 +405,7 @@
 
 static inline void InsertFreeBlock(void *block,const size_t i)
 {
-  register void
+  void
     *next,
     *previous;
 
@@ -432,7 +432,7 @@
 
 static inline void RemoveFreeBlock(void *block,const size_t i)
 {
-  register void
+  void
     *next,
     *previous;
 
@@ -448,10 +448,10 @@
 
 static void *AcquireBlock(size_t size)
 {
-  register size_t
+  size_t
     i;
 
-  register void
+  void
     *block;
 
   /*
@@ -524,7 +524,7 @@
 */
 MagickExport void *AcquireMagickMemory(const size_t size)
 {
-  register void
+  void
     *memory;
 
 #if !defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
@@ -537,7 +537,7 @@
       LockSemaphoreInfo(memory_semaphore);
       if (free_segments == (DataSegmentInfo *) NULL)
         {
-          register ssize_t
+          ssize_t
             i;
 
           assert(2*sizeof(size_t) > (size_t) (~SizeMask));
@@ -598,7 +598,7 @@
 */
 MagickExport void *AcquireCriticalMemory(const size_t size)
 {
-  register void
+  void
     *memory;
 
   /*
@@ -810,10 +810,10 @@
 MagickExport void *CopyMagickMemory(void *magick_restrict destination,
   const void *magick_restrict source,const size_t size)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   assert(destination != (void *) NULL);
@@ -858,7 +858,7 @@
 MagickExport void DestroyMagickMemory(void)
 {
 #if defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
-  register ssize_t
+  ssize_t
     i;
 
   if (memory_semaphore == (SemaphoreInfo *) NULL)
@@ -910,10 +910,10 @@
   MagickBooleanType
     mapped;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register void
+  void
     *block;
 
   size_t
@@ -1035,7 +1035,7 @@
           value=DestroyString(value);
         }
     }
-  return(max_memory_request);
+  return(MagickMin(max_memory_request,LONG_MAX));
 }
 
 /*
@@ -1340,7 +1340,7 @@
 #if defined(MAGICKCORE_ANONYMOUS_MEMORY_SUPPORT)
 static inline void *ResizeBlock(void *block,size_t size)
 {
-  register void
+  void
     *memory;
 
   if (block == (void *) NULL)
@@ -1359,7 +1359,7 @@
 
 MagickExport void *ResizeMagickMemory(void *memory,const size_t size)
 {
-  register void
+  void
     *block;
 
   if (memory == (void *) NULL)
diff --git a/MagickCore/memory_.h b/MagickCore/memory_.h
index b6ff952..585b5bb 100644
--- a/MagickCore/memory_.h
+++ b/MagickCore/memory_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/method-attribute.h b/MagickCore/method-attribute.h
index b46c607..f8304d5 100644
--- a/MagickCore/method-attribute.h
+++ b/MagickCore/method-attribute.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/methods.h b/MagickCore/methods.h
index 3cf274f..899ea3c 100644
--- a/MagickCore/methods.h
+++ b/MagickCore/methods.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/mime-private.h b/MagickCore/mime-private.h
index c12eae5..6857ac7 100644
--- a/MagickCore/mime-private.h
+++ b/MagickCore/mime-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/mime.c b/MagickCore/mime.c
index 2e05b84..bc9cf24 100644
--- a/MagickCore/mime.c
+++ b/MagickCore/mime.c
@@ -15,7 +15,7 @@
 %                                 July 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -223,13 +223,13 @@
   EndianType
     endian;
 
-  register const MimeInfo
+  const MimeInfo
     *p;
 
-  register const unsigned char
+  const unsigned char
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -436,10 +436,10 @@
   const MimeInfo
     **aliases;
 
-  register const MimeInfo
+  const MimeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -512,7 +512,7 @@
 
 static int MimeCompare(const void *x,const void *y)
 {
-  register char
+  char
     *p,
     *q;
 
@@ -531,10 +531,10 @@
   char
     **aliases;
 
-  register const MimeInfo
+  const MimeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -697,7 +697,7 @@
   const MimeInfo
     **mime_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -874,7 +874,7 @@
         const char
           *p;
 
-        register unsigned char
+        unsigned char
           *q;
 
         token=AcquireString(attribute);
@@ -1054,7 +1054,7 @@
 
 static void *DestroyMimeElement(void *mime_info)
 {
-  register MimeInfo
+  MimeInfo
     *p;
 
   p=(MimeInfo *) mime_info;
diff --git a/MagickCore/mime.h b/MagickCore/mime.h
index 5f9230a..a8f3374 100644
--- a/MagickCore/mime.h
+++ b/MagickCore/mime.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/module-private.h b/MagickCore/module-private.h
index 049c989..3beadac 100644
--- a/MagickCore/module-private.h
+++ b/MagickCore/module-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/module.c b/MagickCore/module.c
index e270d34..33b8fca 100644
--- a/MagickCore/module.c
+++ b/MagickCore/module.c
@@ -17,7 +17,7 @@
 %                                March 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -291,10 +291,10 @@
   const ModuleInfo
     **modules;
 
-  register const ModuleInfo
+  const ModuleInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -369,7 +369,7 @@
 
 static int ModuleCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -399,7 +399,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -566,7 +566,7 @@
   }
   if (module_path != (char *) NULL)
     {
-      register char
+      char
         *p,
         *q;
 
@@ -850,7 +850,7 @@
   ExceptionInfo
     *exception;
 
-  register ModuleInfo
+  ModuleInfo
     *p;
 
   exception=AcquireExceptionInfo();
@@ -1073,7 +1073,7 @@
     **modules,
     path[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1238,7 +1238,7 @@
   PolicyRights
     rights;
 
-  register const CoderInfo
+  const CoderInfo
     *p;
 
   size_t
@@ -1361,7 +1361,7 @@
   char
     **modules;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/module.h b/MagickCore/module.h
index 19d7335..a08e545 100644
--- a/MagickCore/module.h
+++ b/MagickCore/module.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/monitor-private.h b/MagickCore/monitor-private.h
index d7cdb70..9ab1988 100644
--- a/MagickCore/monitor-private.h
+++ b/MagickCore/monitor-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/monitor.c b/MagickCore/monitor.c
index bf7cb92..49a77ff 100644
--- a/MagickCore/monitor.c
+++ b/MagickCore/monitor.c
@@ -17,7 +17,7 @@
 %                               December 1995                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/monitor.h b/MagickCore/monitor.h
index f0fd907..e6841d0 100644
--- a/MagickCore/monitor.h
+++ b/MagickCore/monitor.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index 30eaff7..260dd34 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -363,7 +363,7 @@
   MagickStatusType
     flags;
 
-  register ssize_t
+  ssize_t
     i;
 
   RectangleInfo
diff --git a/MagickCore/montage.h b/MagickCore/montage.h
index b21e41b..1f5824c 100644
--- a/MagickCore/montage.h
+++ b/MagickCore/montage.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/morphology-private.h b/MagickCore/morphology-private.h
index aa690fa..2ace8a2 100644
--- a/MagickCore/morphology-private.h
+++ b/MagickCore/morphology-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c
index c58ee9f..7b667e4 100644
--- a/MagickCore/morphology.c
+++ b/MagickCore/morphology.c
@@ -17,7 +17,7 @@
 %                               January 2010                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -223,7 +223,7 @@
     *p,
     *end;
 
-  register ssize_t
+  ssize_t
     i;
 
   double
@@ -954,10 +954,10 @@
   KernelInfo
     *kernel;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register ssize_t
+  ssize_t
     u,
     v;
 
@@ -2212,7 +2212,7 @@
 */
 MagickExport KernelInfo *CloneKernelInfo(const KernelInfo *kernel)
 {
-  register ssize_t
+  ssize_t
     i;
 
   KernelInfo
@@ -2311,9 +2311,9 @@
     { /* Do a Flop by reversing each row. */
       size_t
         y;
-      register ssize_t
+      ssize_t
         x,r;
-      register double
+      double
         *k,t;
 
       for ( y=0, k=kernel->values; y < kernel->height; y++, k+=kernel->width)
@@ -2392,7 +2392,7 @@
 static MagickBooleanType SameKernelInfo(const KernelInfo *kernel1,
      const KernelInfo *kernel2)
 {
-  register size_t
+  size_t
     i;
 
   /* check size and origin location */
@@ -2480,7 +2480,7 @@
 */
 static void CalcKernelMetaData(KernelInfo *kernel)
 {
-  register size_t
+  size_t
     i;
 
   kernel->minimum = kernel->maximum = 0.0;
@@ -2572,7 +2572,7 @@
   OffsetInfo
     offset;
 
-  register ssize_t
+  ssize_t
     j,
     y;
 
@@ -2642,7 +2642,7 @@
 
   if ((method == ConvolveMorphology) && (kernel->width == 1))
     {
-      register ssize_t
+      ssize_t
         x;
 
       /*
@@ -2660,13 +2660,13 @@
         const int
           id = GetOpenMPThreadId();
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           r;
 
         ssize_t
@@ -2686,7 +2686,7 @@
         center=(ssize_t) GetPixelChannels(image)*offset.y;
         for (r=0; r < (ssize_t) image->rows; r++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2703,13 +2703,13 @@
               morphology_traits,
               traits;
 
-            register const MagickRealType
+            const MagickRealType
               *magick_restrict k;
 
-            register const Quantum
+            const Quantum
               *magick_restrict pixels;
 
-            register ssize_t
+            ssize_t
               v;
 
             size_t
@@ -2806,13 +2806,13 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -2833,7 +2833,7 @@
       GetPixelChannels(image)*offset.x);
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2853,14 +2853,14 @@
           morphology_traits,
           traits;
 
-        register const MagickRealType
+        const MagickRealType
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels,
           *magick_restrict quantum_pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         size_t
@@ -3306,13 +3306,13 @@
   width=image->columns+kernel->width-1;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -3336,7 +3336,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3350,13 +3350,13 @@
         PixelTrait
           traits;
 
-        register const MagickRealType
+        const MagickRealType
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -3469,13 +3469,13 @@
   morphology_view=AcquireAuthenticCacheView(image,exception);
   for (y=(ssize_t) image->rows-1; y >= 0; y--)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -3500,7 +3500,7 @@
     q+=(image->columns-1)*GetPixelChannels(image);
     for (x=(ssize_t) image->columns-1; x >= 0; x--)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3514,13 +3514,13 @@
         PixelTrait
           traits;
 
-        register const MagickRealType
+        const MagickRealType
           *magick_restrict k;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
@@ -4365,10 +4365,10 @@
         }
       else if ( kernel->width == kernel->height )
         { /* Rotate a square array of values by 90 degrees */
-          { register ssize_t
+          { ssize_t
               i,j,x,y;
 
-            register MagickRealType
+            MagickRealType
               *k,t;
 
             k=kernel->values;
@@ -4382,7 +4382,7 @@
                 }
           }
           /* rotate the origin - relative to center of array */
-          { register ssize_t x,y;
+          { ssize_t x,y;
             x = (ssize_t) (kernel->x*2-kernel->width+1);
             y = (ssize_t) (kernel->y*2-kernel->height+1);
             kernel->x = (ssize_t) ( -y +(ssize_t) kernel->width-1)/2;
@@ -4404,7 +4404,7 @@
       MagickRealType
         t;
 
-      register MagickRealType
+      MagickRealType
         *k;
 
       ssize_t
@@ -4572,11 +4572,11 @@
 MagickExport void ScaleKernelInfo(KernelInfo *kernel,
   const double scaling_factor,const GeometryFlags normalize_flags)
 {
-  register double
+  double
     pos_scale,
     neg_scale;
 
-  register ssize_t
+  ssize_t
     i;
 
   /* do the other kernels in a multi-kernel list first */
@@ -4776,7 +4776,7 @@
 */
 MagickPrivate void ZeroKernelNans(KernelInfo *kernel)
 {
-  register size_t
+  size_t
     i;
 
   /* do the other kernels in a multi-kernel list first */
diff --git a/MagickCore/morphology.h b/MagickCore/morphology.h
index f3999a4..c1eac52 100644
--- a/MagickCore/morphology.h
+++ b/MagickCore/morphology.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/mutex.h b/MagickCore/mutex.h
index 5ebdc72..629341a 100644
--- a/MagickCore/mutex.h
+++ b/MagickCore/mutex.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/nt-base-private.h b/MagickCore/nt-base-private.h
index fcd658c..e45b6a5 100644
--- a/MagickCore/nt-base-private.h
+++ b/MagickCore/nt-base-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/nt-base.c b/MagickCore/nt-base.c
index 061ce6c..661dbd2 100644
--- a/MagickCore/nt-base.c
+++ b/MagickCore/nt-base.c
@@ -17,7 +17,7 @@
 %                                December 1996                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -42,6 +42,7 @@
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
 #include "MagickCore/client.h"
 #include "MagickCore/exception-private.h"
+#include "MagickCore/image-private.h"
 #include "MagickCore/locale_.h"
 #include "MagickCore/log.h"
 #include "MagickCore/magick.h"
@@ -1328,7 +1329,7 @@
 */
 MagickPrivate void NTGhostscriptEXE(char *path,int length)
 {
-  register char
+  char
     *p;
 
   static char
@@ -1402,7 +1403,7 @@
     *directory,
     filename[MagickPathExtent];
 
-  register char
+  char
     *p,
     *q;
 
@@ -1664,6 +1665,7 @@
           long_paths_enabled=0;
           return(MagickFalse);
         }
+      size=0;
       status=RegQueryValueExA(registry_key,"LongPathsEnabled",0,&type,
         (LPBYTE) &value,&size);
       RegCloseKey(registry_key);
@@ -1901,7 +1903,7 @@
   char
     path[MagickPathExtent];
 
-  register const char
+  const char
     *p,
     *q;
 
@@ -2300,9 +2302,7 @@
     local_command[MagickPathExtent];
 
   DWORD
-    bytes_read,
-    child_status,
-    size;
+    child_status;
 
   int
     status;
@@ -2320,6 +2320,9 @@
   SECURITY_ATTRIBUTES
     sa;
 
+  size_t
+    output_offset;
+
   STARTUPINFO
     startup_info;
 
@@ -2375,9 +2378,47 @@
       CleanupOutputHandles;
       return(-1);
     }
+  if (output != (char *) NULL)
+    *output='\0';
   if (asynchronous != MagickFalse)
     return(status == 0);
-  status=WaitForSingleObject(process_info.hProcess,INFINITE);
+  output_offset=0;
+  status=STATUS_TIMEOUT;
+  while (status == STATUS_TIMEOUT)
+  {
+    DWORD
+      size;
+
+    status=WaitForSingleObject(process_info.hProcess,1000);
+    size=0;
+    if (read_output != (HANDLE) NULL)
+      if (!PeekNamedPipe(read_output,NULL,0,NULL,&size,NULL))
+        break;
+    while (size > 0)
+    {
+      char
+        buffer[MagickPathExtent];
+
+      DWORD
+        bytes_read;
+
+      if (ReadFile(read_output,buffer,sizeof(buffer)-1,&bytes_read,NULL))
+        {
+          size_t
+            count;
+
+          count=MagickMin(MagickPathExtent-1-output_offset,bytes_read);
+          if (count > 0)
+            {
+              CopyMagickString(output+output_offset,buffer,count);
+              output[count]='\0';
+              output_offset=count;
+            }
+        }
+      if (!PeekNamedPipe(read_output,NULL,0,NULL,&size,NULL))
+        break;
+    }
+  }
   if (status != WAIT_OBJECT_0)
     {
       CopyLastError;
@@ -2393,10 +2434,6 @@
     }
   CloseHandle(process_info.hProcess);
   CloseHandle(process_info.hThread);
-  if (read_output != (HANDLE) NULL)
-    if (PeekNamedPipe(read_output,(LPVOID) NULL,0,(LPDWORD) NULL,&size,(LPDWORD) NULL))
-      if ((size > 0) && (ReadFile(read_output,output,MagickPathExtent-1,&bytes_read,NULL)))
-        output[bytes_read]='\0';
   CleanupOutputHandles;
   return((int) child_status);
 }
diff --git a/MagickCore/nt-base.h b/MagickCore/nt-base.h
index 2c859f5..57b366b 100644
--- a/MagickCore/nt-base.h
+++ b/MagickCore/nt-base.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -55,13 +55,6 @@
 #define _SC_PAGE_SIZE 1
 #define _SC_PHYS_PAGES 2
 #define _SC_OPEN_MAX 3
-#if !defined(SSIZE_MAX)
-# ifdef _WIN64
-#   define SSIZE_MAX LLONG_MAX
-# else
-#   define SSIZE_MAX LONG_MAX
-# endif
-#endif
 
 /*
   _MSC_VER values:
diff --git a/MagickCore/nt-feature.c b/MagickCore/nt-feature.c
index 679ae9e..88ae736 100644
--- a/MagickCore/nt-feature.c
+++ b/MagickCore/nt-feature.c
@@ -18,7 +18,7 @@
 %                                December 1996                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/nt-feature.h b/MagickCore/nt-feature.h
index 5071059..89d571b 100644
--- a/MagickCore/nt-feature.h
+++ b/MagickCore/nt-feature.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/opencl-private.h b/MagickCore/opencl-private.h
index 807505f..020ddd0 100644
--- a/MagickCore/opencl-private.h
+++ b/MagickCore/opencl-private.h
@@ -1,5 +1,5 @@
 /*
-Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 dedicated to making software imaging solutions freely available.
 
 You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/opencl.c b/MagickCore/opencl.c
index abf6467..3a380fd 100644
--- a/MagickCore/opencl.c
+++ b/MagickCore/opencl.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1436,7 +1436,7 @@
   cl_event
     *events;
 
-  register size_t
+  size_t
     i;
 
   size_t
diff --git a/MagickCore/opencl.h b/MagickCore/opencl.h
index 4690b65..06027d5 100644
--- a/MagickCore/opencl.h
+++ b/MagickCore/opencl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/option-private.h b/MagickCore/option-private.h
index 3cc79fa..81b6f1b 100644
--- a/MagickCore/option-private.h
+++ b/MagickCore/option-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/option.c b/MagickCore/option.c
index 29971b3..cc5209d 100644
--- a/MagickCore/option.c
+++ b/MagickCore/option.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -462,9 +462,11 @@
   ColorspaceOptions[] =
   {
     { "Undefined", UndefinedColorspace, UndefinedOptionFlag, MagickTrue },
+    { "Adobe98", Adobe98Colorspace, UndefinedOptionFlag, MagickFalse },
     { "CIELab", LabColorspace, UndefinedOptionFlag, MagickFalse },
     { "CMY", CMYColorspace, UndefinedOptionFlag, MagickFalse },
     { "CMYK", CMYKColorspace, UndefinedOptionFlag, MagickFalse },
+    { "DisplayP3", DisplayP3Colorspace, UndefinedOptionFlag, MagickFalse },
     { "Gray", GRAYColorspace, UndefinedOptionFlag, MagickFalse },
     { "HCL", HCLColorspace, UndefinedOptionFlag, MagickFalse },
     { "HCLp", HCLpColorspace, UndefinedOptionFlag, MagickFalse },
@@ -483,6 +485,7 @@
     { "Log", LogColorspace, UndefinedOptionFlag, MagickFalse },
     { "Luv", LuvColorspace, UndefinedOptionFlag, MagickFalse },
     { "OHTA", OHTAColorspace, UndefinedOptionFlag, MagickFalse },
+    { "ProPhoto", ProPhotoColorspace, UndefinedOptionFlag, MagickFalse },
     { "Rec601YCbCr", Rec601YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
     { "Rec709YCbCr", Rec709YCbCrColorspace, UndefinedOptionFlag, MagickFalse },
     { "RGB", RGBColorspace, UndefinedOptionFlag, MagickFalse },
@@ -2202,7 +2205,7 @@
     key[MagickPathExtent],
     value[MagickPathExtent];
 
-  register char
+  char
     *p;
 
   assert(image_info != (ImageInfo *) NULL);
@@ -2454,13 +2457,13 @@
   MagickBooleanType
     negate;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2547,7 +2550,7 @@
 */
 MagickExport const OptionInfo *GetCommandOptionInfo(const char *option)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; CommandOptions[i].mnemonic != (char *) NULL; i++)
@@ -2586,7 +2589,7 @@
   const OptionInfo
     *option_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   option_info=GetOptionInfo(option);
@@ -2704,7 +2707,7 @@
   const OptionInfo
     *option_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   option_info=GetOptionInfo(option);
@@ -2757,7 +2760,7 @@
   MagickBooleanType
     member;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -2824,7 +2827,7 @@
   const OptionInfo
     *option_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   magick_unreferenced(exception);
@@ -2867,7 +2870,7 @@
 */
 MagickExport ssize_t ParseChannelOption(const char *channels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3005,13 +3008,13 @@
   MagickBooleanType
     negate;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/option.h b/MagickCore/option.h
index 59482ed..db3c9ce 100644
--- a/MagickCore/option.h
+++ b/MagickCore/option.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/paint.c b/MagickCore/paint.c
index 7ea0d62..1b829ad 100644
--- a/MagickCore/paint.c
+++ b/MagickCore/paint.c
@@ -17,7 +17,7 @@
 %                                 July 1998                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -150,7 +150,7 @@
     fill_color,
     pixel;
 
-  register SegmentInfo
+  SegmentInfo
     *s;
 
   SegmentInfo
@@ -215,13 +215,13 @@
   floodplane_view=AcquireAuthenticCacheView(floodplane_image,exception);
   while (s > segment_stack)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -321,13 +321,13 @@
   status=MagickTrue;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -647,7 +647,7 @@
 
 static size_t **DestroyHistogramThreadSet(size_t **histogram)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(histogram != (size_t **) NULL);
@@ -660,7 +660,7 @@
 
 static size_t **AcquireHistogramThreadSet(const size_t count)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -757,16 +757,16 @@
 #endif
   for (y=0; y < (ssize_t) linear_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register size_t
+    size_t
       *histogram;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -783,7 +783,7 @@
     histogram=histograms[GetOpenMPThreadId()];
     for (x=0; x < (ssize_t) linear_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i,
         u;
 
@@ -951,10 +951,10 @@
     PixelInfo
       pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1098,10 +1098,10 @@
     PixelInfo
       pixel;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1229,10 +1229,10 @@
     PixelInfo
       pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/paint.h b/MagickCore/paint.h
index 0a617f6..0ba4a71 100644
--- a/MagickCore/paint.h
+++ b/MagickCore/paint.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/pixel-accessor.h b/MagickCore/pixel-accessor.h
index c8dac5c..5e105c0 100644
--- a/MagickCore/pixel-accessor.h
+++ b/MagickCore/pixel-accessor.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/pixel-private.h b/MagickCore/pixel-private.h
index bb66547..5fcccc1 100644
--- a/MagickCore/pixel-private.h
+++ b/MagickCore/pixel-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c
index 529567a..9c52549 100644
--- a/MagickCore/pixel.c
+++ b/MagickCore/pixel.c
@@ -16,7 +16,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -95,7 +95,7 @@
   PixelChannelMap
     *channel_map;
 
-  register ssize_t
+  ssize_t
     i;
 
   channel_map=(PixelChannelMap *) AcquireQuantumMemory(MaxPixelChannels,
@@ -510,13 +510,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
@@ -655,7 +655,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -717,13 +717,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register double
+  double
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -862,7 +862,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -925,13 +925,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register float
+  float
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -1070,7 +1070,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1132,13 +1132,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned int
+  unsigned int
     *magick_restrict q;
 
   size_t
@@ -1277,7 +1277,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1339,13 +1339,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register MagickSizeType
+  MagickSizeType
     *magick_restrict q;
 
   size_t
@@ -1485,7 +1485,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1548,13 +1548,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -1693,7 +1693,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1758,13 +1758,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned short
+  unsigned short
     *magick_restrict q;
 
   size_t
@@ -1903,7 +1903,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -1974,7 +1974,7 @@
   RectangleInfo
     roi;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2512,13 +2512,13 @@
   const char *magick_restrict map,const QuantumType *quantum_map,
   const void *pixels,ExceptionInfo *exception)
 {
-  register const unsigned char
+  const unsigned char
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -2711,7 +2711,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -2773,13 +2773,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
 {
-  register const double
+  const double
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -2952,7 +2952,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3014,13 +3014,13 @@
   const char *magick_restrict map,const QuantumType *quantum_map,
   const void *pixels,ExceptionInfo *exception)
 {
-  register const float
+  const float
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -3193,7 +3193,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3255,13 +3255,13 @@
   const char *magick_restrict map,const QuantumType *quantum_map,
   const void *pixels,ExceptionInfo *exception)
 {
-  register const unsigned int
+  const unsigned int
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -3414,7 +3414,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3476,13 +3476,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
 {
-  register const MagickSizeType
+  const MagickSizeType
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -3635,7 +3635,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3697,13 +3697,13 @@
   const RectangleInfo *roi,const char *magick_restrict map,
   const QuantumType *quantum_map,const void *pixels,ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -3856,7 +3856,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -3918,13 +3918,13 @@
   const char *magick_restrict map,const QuantumType *quantum_map,
   const void *pixels,ExceptionInfo *exception)
 {
-  register const unsigned short
+  const unsigned short
     *magick_restrict p;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -4077,7 +4077,7 @@
       break;
     for (x=0; x < (ssize_t) roi->width; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) length; i++)
@@ -4148,7 +4148,7 @@
   RectangleInfo
     roi;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -4336,7 +4336,7 @@
   PixelTrait
     trait;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4454,15 +4454,6 @@
   (*weights)[2]=x-(*weights)[3]-gamma;
 }
 
-static inline double ConstrainPixelOffset(double x)
-{
-  if (x < (double) -(SSIZE_MAX-512))
-    return((double) -(SSIZE_MAX-512));
-  if (x > (double) (SSIZE_MAX-512))
-    return((double) (SSIZE_MAX-512));
-  return(x);
-}
-
 static inline void SplineWeights(const double x,double (*weights)[4])
 {
   double
@@ -4508,10 +4499,10 @@
   PixelTrait
     traits;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4524,8 +4515,8 @@
   status=MagickTrue;
   *pixel=0.0;
   traits=GetPixelChannelTraits(image,channel);
-  x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
-  y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
+  x_offset=CastDoubleToLong(floor(x));
+  y_offset=CastDoubleToLong(floor(y));
   interpolate=method;
   if (interpolate == UndefinedInterpolatePixel)
     interpolate=image->interpolate;
@@ -4542,8 +4533,8 @@
       if (interpolate == Average9InterpolatePixel)
         {
           count=3;
-          x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
-          y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
+          x_offset=CastDoubleToLong(floor(x+0.5)-1.0);
+          y_offset=CastDoubleToLong(floor(y+0.5)-1.0);
         }
       else
         if (interpolate == Average16InterpolatePixel)
@@ -4726,8 +4717,8 @@
     }
     case NearestInterpolatePixel:
     {
-      x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
-      y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
+      x_offset=CastDoubleToLong(floor(x+0.5));
+      y_offset=CastDoubleToLong(floor(y+0.5));
       p=GetCacheViewVirtualPixels(image_view,x_offset,y_offset,1,1,exception);
       if (p == (const Quantum *) NULL)
         {
@@ -4927,10 +4918,10 @@
     gamma,
     pixels[16];
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4944,8 +4935,8 @@
   assert(source->signature == MagickCoreSignature);
   assert(source_view != (CacheView *) NULL);
   status=MagickTrue;
-  x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
-  y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
+  x_offset=CastDoubleToLong(floor(x));
+  y_offset=CastDoubleToLong(floor(y));
   interpolate=method;
   if (interpolate == UndefinedInterpolatePixel)
     interpolate=source->interpolate;
@@ -4962,8 +4953,8 @@
       if (interpolate == Average9InterpolatePixel)
         {
           count=3;
-          x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
-          y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
+          x_offset=CastDoubleToLong(floor(x+0.5)-1.0);
+          y_offset=CastDoubleToLong(floor(y+0.5)-1.0);
         }
       else
         if (interpolate == Average16InterpolatePixel)
@@ -4985,7 +4976,7 @@
         double
           sum;
 
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5087,7 +5078,7 @@
         }
       for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
       {
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5164,7 +5155,7 @@
         }
       for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
       {
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5227,8 +5218,8 @@
     }
     case NearestInterpolatePixel:
     {
-      x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
-      y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
+      x_offset=CastDoubleToLong(floor(x+0.5));
+      y_offset=CastDoubleToLong(floor(y+0.5));
       p=GetCacheViewVirtualPixels(source_view,x_offset,y_offset,1,1,exception);
       if (p == (const Quantum *) NULL)
         {
@@ -5371,7 +5362,7 @@
         }
       for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
       {
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(source,i);
@@ -5494,10 +5485,10 @@
   PixelInfo
     pixels[16];
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -5511,8 +5502,8 @@
   assert(image->signature == MagickCoreSignature);
   assert(image_view != (CacheView *) NULL);
   status=MagickTrue;
-  x_offset=(ssize_t) floor(ConstrainPixelOffset(x));
-  y_offset=(ssize_t) floor(ConstrainPixelOffset(y));
+  x_offset=CastDoubleToLong(floor(x));
+  y_offset=CastDoubleToLong(floor(y));
   interpolate=method;
   if (interpolate == UndefinedInterpolatePixel)
     interpolate=image->interpolate;
@@ -5531,8 +5522,8 @@
       if (interpolate == Average9InterpolatePixel)
         {
           count=3;
-          x_offset=(ssize_t) (floor(ConstrainPixelOffset(x)+0.5)-1);
-          y_offset=(ssize_t) (floor(ConstrainPixelOffset(y)+0.5)-1);
+          x_offset=CastDoubleToLong(floor(x+0.5)-1.0);
+          y_offset=CastDoubleToLong(floor(y+0.5)-1.0);
         }
       else if (interpolate == Average16InterpolatePixel)
         {
@@ -5856,8 +5847,8 @@
     }
     case NearestInterpolatePixel:
     {
-      x_offset=(ssize_t) floor(ConstrainPixelOffset(x)+0.5);
-      y_offset=(ssize_t) floor(ConstrainPixelOffset(y)+0.5);
+      x_offset=CastDoubleToLong(floor(x+0.5));
+      y_offset=CastDoubleToLong(floor(y+0.5));
       p=GetCacheViewVirtualPixels(image_view,x_offset,y_offset,1,1,exception);
       if (p == (const Quantum *) NULL)
         {
@@ -5960,7 +5951,7 @@
     fuzz,
     pixel;
 
-  register double
+  double
     distance,
     scale;
 
@@ -6069,7 +6060,7 @@
     fuzz,
     pixel;
 
-  register double
+  double
     scale,
     distance;
 
@@ -6172,7 +6163,7 @@
 
 static void LogPixelChannels(const Image *image)
 {
-  register ssize_t
+  ssize_t
     i;
 
   (void) LogMagickEvent(PixelEvent,GetMagickModule(),"%s[%08x]",
@@ -6285,7 +6276,7 @@
   ChannelType
     mask;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
diff --git a/MagickCore/pixel.h b/MagickCore/pixel.h
index 05f1cb1..ed4762a 100644
--- a/MagickCore/pixel.h
+++ b/MagickCore/pixel.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/policy-private.h b/MagickCore/policy-private.h
index 465c2d3..99cd177 100644
--- a/MagickCore/policy-private.h
+++ b/MagickCore/policy-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/policy.c b/MagickCore/policy.c
index fed7034..a065d86 100644
--- a/MagickCore/policy.c
+++ b/MagickCore/policy.c
@@ -16,7 +16,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -176,7 +176,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -215,7 +215,7 @@
     PolicyInfo
       *policy_info;
 
-    register const PolicyMapInfo
+    const PolicyMapInfo
       *p;
 
     p=PolicyMap+i;
@@ -277,10 +277,10 @@
   PolicyDomain
     domain;
 
-  register PolicyInfo
+  PolicyInfo
     *p;
 
-  register char
+  char
     *q;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -371,10 +371,10 @@
   const PolicyInfo
     **policies;
 
-  register const PolicyInfo
+  const PolicyInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -466,10 +466,10 @@
   char
     **policies;
 
-  register const PolicyInfo
+  const PolicyInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -628,7 +628,7 @@
   MagickBooleanType
     authorized;
 
-  register PolicyInfo
+  PolicyInfo
     *p;
 
   if (IsEventLogging() != MagickFalse)
@@ -700,7 +700,7 @@
   const PolicyInfo
     **policy_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1037,7 +1037,7 @@
 
 static void *DestroyPolicyElement(void *policy_info)
 {
-  register PolicyInfo
+  PolicyInfo
     *p;
 
   p=(PolicyInfo *) policy_info;
@@ -1162,7 +1162,7 @@
   MagickBooleanType
     status;
 
-  register PolicyInfo
+  PolicyInfo
     *p;
 
   status=MagickTrue;
diff --git a/MagickCore/policy.h b/MagickCore/policy.h
index a090541..c6983b7 100644
--- a/MagickCore/policy.h
+++ b/MagickCore/policy.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/prepress.c b/MagickCore/prepress.c
index c5beb3a..b9ddeaa 100644
--- a/MagickCore/prepress.c
+++ b/MagickCore/prepress.c
@@ -17,7 +17,7 @@
 %                                October 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -120,10 +120,10 @@
     double
       density;
 
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
diff --git a/MagickCore/prepress.h b/MagickCore/prepress.h
index 0c0a7fc..e250a12 100644
--- a/MagickCore/prepress.h
+++ b/MagickCore/prepress.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/profile-private.h b/MagickCore/profile-private.h
index 17b0066..bd789f1 100644
--- a/MagickCore/profile-private.h
+++ b/MagickCore/profile-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/profile.c b/MagickCore/profile.c
index 8b3e91c..12cb607 100644
--- a/MagickCore/profile.c
+++ b/MagickCore/profile.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -401,7 +401,7 @@
 
 static void **DestroyPixelThreadSet(void **pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (pixels == (void **) NULL)
@@ -416,7 +416,7 @@
 static void **AcquirePixelThreadSet(const size_t columns,
   const size_t channels,MagickBooleanType highres)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -447,7 +447,7 @@
 
 static cmsHTRANSFORM *DestroyTransformThreadSet(cmsHTRANSFORM *transform)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(transform != (cmsHTRANSFORM *) NULL);
@@ -465,7 +465,7 @@
   cmsHTRANSFORM
     *transform;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -530,10 +530,10 @@
 #define SetLCMSPixel(target_info,pixel) \
   ClampToQuantum(target_info->scale*QuantumRange*(pixel)+target_info->translate)
 
-  register double
+  double
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   p=(double *) source_info->pixels[id];
@@ -580,10 +580,10 @@
   const LCMSInfo *source_info,const LCMSInfo *target_info,
   const cmsHTRANSFORM *transform,Quantum *q)
 {
-  register Quantum
+  Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   p=(Quantum *) source_info->pixels[id];
@@ -1354,7 +1354,7 @@
               MagickBooleanType
                 sync;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
               if (status == MagickFalse)
@@ -1589,7 +1589,7 @@
     *datum,
     *q;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
   size_t
@@ -1697,7 +1697,7 @@
   const unsigned char
     *datum;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
   size_t
@@ -1842,7 +1842,7 @@
 
 static void PatchCorruptProfile(const char *name,StringInfo *profile)
 {
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -2317,7 +2317,7 @@
       int
         components;
 
-      register unsigned char
+      unsigned char
         *p,
         *q;
 
@@ -2454,7 +2454,7 @@
   const size_t old_columns,const size_t old_rows,
   const RectangleInfo *new_geometry)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/profile.h b/MagickCore/profile.h
index 3bbcfb8..8662d50 100644
--- a/MagickCore/profile.h
+++ b/MagickCore/profile.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/property.c b/MagickCore/property.c
index 69c42a0..af55ceb 100644
--- a/MagickCore/property.c
+++ b/MagickCore/property.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -236,7 +236,7 @@
     key[MagickPathExtent],
     value[MagickPathExtent];
 
-  register char
+  char
     *p;
 
   assert(image != (Image *) NULL);
@@ -434,7 +434,7 @@
     dataset,
     record;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -513,7 +513,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -553,7 +553,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -598,7 +598,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1239,7 +1239,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1423,7 +1423,7 @@
     number_entries=(size_t) ReadPropertyUnsignedShort(endian,directory);
     for ( ; entry < number_entries; entry++)
     {
-      register unsigned char
+      unsigned char
         *p,
         *q;
 
@@ -1785,7 +1785,7 @@
   MagickBooleanType
     status;
 
-  register const char
+  const char
     *p;
 
   XMLTreeInfo
@@ -1875,7 +1875,7 @@
     last[3],
     point[3];
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -2092,7 +2092,7 @@
     last[3],
     point[3];
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2220,7 +2220,7 @@
   MagickBooleanType
     read_from_properties;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -2923,7 +2923,7 @@
           PointInfo
             *convex_hull;
 
-          register ssize_t
+          ssize_t
             n;
 
           size_t
@@ -3115,7 +3115,7 @@
           PointInfo
             *bounding_box;
 
-          register ssize_t
+          ssize_t
             n;
 
           size_t
@@ -3587,10 +3587,10 @@
   MagickBooleanType
     number;
 
-  register char
+  char
     *q;  /* current position in interpret_text */
 
-  register const char
+  const char
     *p;  /* position in embed_text string being expanded */
 
   size_t
@@ -3771,7 +3771,7 @@
         *key,
         *string;
 
-      register ssize_t
+      ssize_t
         len;
 
       ssize_t
@@ -4354,14 +4354,15 @@
           else
             if ((flags & LessValue) != 0)
               {
-                if (image->delay < (size_t) floor(geometry_info.rho+0.5))
-                  image->delay=(ssize_t)
-                    floor(geometry_info.sigma+0.5);
+                if ((double) image->delay < floor(geometry_info.rho+0.5))
+                  image->delay=CastDoubleToLong(
+                    floor(geometry_info.sigma+0.5));
               }
             else
               image->delay=(size_t) floor(geometry_info.rho+0.5);
           if ((flags & SigmaValue) != 0)
-            image->ticks_per_second=(ssize_t) floor(geometry_info.sigma+0.5);
+            image->ticks_per_second=CastDoubleToLong(floor(
+              geometry_info.sigma+0.5));
           return(MagickTrue);
         }
       if (LocaleCompare("delay_units",property) == 0)
diff --git a/MagickCore/property.h b/MagickCore/property.h
index eb9c60c..aca9107 100644
--- a/MagickCore/property.h
+++ b/MagickCore/property.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c
index 8cee689..75154c9 100644
--- a/MagickCore/quantize.c
+++ b/MagickCore/quantize.c
@@ -17,7 +17,7 @@
 %                              July 1992                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -540,10 +540,10 @@
         CubeInfo
           cube;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -564,10 +564,10 @@
           DoublePixelPacket
             pixel;
 
-          register const NodeInfo
+          const NodeInfo
             *node_info;
 
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -805,10 +805,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -912,10 +912,10 @@
   }
   for (y++; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -1095,7 +1095,7 @@
 static void ClosestColor(const Image *image,CubeInfo *cube_info,
   const NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1113,15 +1113,15 @@
       double
         pixel;
 
-      register double
+      double
         alpha,
         beta,
         distance;
 
-      register DoublePixelPacket
+      DoublePixelPacket
         *magick_restrict q;
 
-      register PixelInfo
+      PixelInfo
         *magick_restrict p;
 
       /*
@@ -1241,7 +1241,7 @@
 static void DefineImageColormap(Image *image,CubeInfo *cube_info,
   NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1256,10 +1256,10 @@
       DefineImageColormap(image,cube_info,node_info->child[i]);
   if (node_info->number_unique != 0)
     {
-      register double
+      double
         alpha;
 
-      register PixelInfo
+      PixelInfo
         *magick_restrict q;
 
       /*
@@ -1342,7 +1342,7 @@
 */
 static void DestroyCubeInfo(CubeInfo *cube_info)
 {
-  register Nodes
+  Nodes
     *nodes;
 
   /*
@@ -1429,7 +1429,7 @@
 
 static DoublePixelPacket **DestroyPixelThreadSet(DoublePixelPacket **pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(pixels != (DoublePixelPacket **) NULL);
@@ -1445,7 +1445,7 @@
   DoublePixelPacket
     **pixels;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1533,10 +1533,10 @@
       *current,
       *previous;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     size_t
@@ -1563,7 +1563,7 @@
         color,
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -1611,10 +1611,10 @@
       i=CacheOffset(&cube,&pixel);
       if (cube.cache[i] < 0)
         {
-          register NodeInfo
+          NodeInfo
             *node_info;
 
-          register size_t
+          size_t
             node_id;
 
           /*
@@ -1828,7 +1828,7 @@
   MagickBooleanType
     proceed;
 
-  register CubeInfo
+  CubeInfo
     *p;
 
   size_t
@@ -1838,10 +1838,10 @@
   if ((p->x >= 0) && (p->x < (ssize_t) image->columns) &&
       (p->y >= 0) && (p->y < (ssize_t) image->rows))
     {
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -1867,10 +1867,10 @@
       i=CacheOffset(cube_info,&pixel);
       if (p->cache[i] < 0)
         {
-          register NodeInfo
+          NodeInfo
             *node_info;
 
-          register size_t
+          size_t
             id;
 
           /*
@@ -1944,7 +1944,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2017,7 +2017,7 @@
     sum,
     weight;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2225,10 +2225,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -2353,7 +2353,7 @@
 
 static KmeansInfo **DestroyKmeansThreadSet(KmeansInfo **kmeans_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(kmeans_info != (KmeansInfo **) NULL);
@@ -2369,7 +2369,7 @@
   KmeansInfo
     **kmeans_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2394,7 +2394,7 @@
 static inline double KmeansMetric(const Image *magick_restrict image,
   const Quantum *magick_restrict p,const PixelInfo *magick_restrict q)
 {
-  register double
+  double
     gamma,
     metric,
     pixel;
@@ -2458,7 +2458,7 @@
     verbose,
     status;
 
-  register ssize_t
+  ssize_t
     n;
 
   size_t
@@ -2517,7 +2517,7 @@
       char
         color[MagickPathExtent];
 
-      register const char
+      const char
         *p;
 
       /*
@@ -2528,7 +2528,7 @@
         return(status);
       for (n=0, p=colors; n < (ssize_t) image->colors; n++)
       {
-        register const char
+        const char
           *q;
 
         for (q=p; *q != '\0'; q++)
@@ -2585,7 +2585,7 @@
     double
       distortion;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -2602,10 +2602,10 @@
       const int
         id = GetOpenMPThreadId();
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -2621,7 +2621,7 @@
         double
           min_distance;
 
-        register ssize_t
+        ssize_t
           i;
 
         ssize_t
@@ -2668,7 +2668,7 @@
     */
     for (i=1; i < (ssize_t) number_threads; i++)
     {
-      register ssize_t
+      ssize_t
         j;
 
       for (j=0; j < (ssize_t) image->colors; j++)
@@ -2793,7 +2793,7 @@
   QuantizeInfo
     *quantize_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2840,10 +2840,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2927,7 +2927,7 @@
   NodeInfo
     *parent;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2980,7 +2980,7 @@
 */
 static void PruneLevel(CubeInfo *cube_info,const NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3025,7 +3025,7 @@
 */
 static void PruneToCubeDepth(CubeInfo *cube_info,const NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3189,7 +3189,7 @@
   MagickProgressMonitor
     progress_monitor;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3323,7 +3323,7 @@
 static size_t QuantizeErrorFlatten(const CubeInfo *cube_info,
   const NodeInfo *node_info,const ssize_t offset,double *quantize_error)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3369,7 +3369,7 @@
 */
 static void Reduce(CubeInfo *cube_info,const NodeInfo *node_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3734,7 +3734,7 @@
   PixelInfo
     *colormap;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3773,10 +3773,10 @@
 #endif
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -3790,7 +3790,7 @@
           }
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register size_t
+          size_t
             intensity;
 
           intensity=ScaleQuantumToMap(GetPixelRed(image,q));
@@ -3853,10 +3853,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/quantize.h b/MagickCore/quantize.h
index 28e5340..2999e8c 100644
--- a/MagickCore/quantize.h
+++ b/MagickCore/quantize.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/quantum-export.c b/MagickCore/quantum-export.c
index 0eee7d9..3ab71bf 100644
--- a/MagickCore/quantum-export.c
+++ b/MagickCore/quantum-export.c
@@ -22,7 +22,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -176,7 +176,7 @@
 static inline unsigned char *PopQuantumPixel(QuantumInfo *quantum_info,
   const QuantumAny pixel,unsigned char *magick_restrict pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -209,7 +209,7 @@
 static inline unsigned char *PopQuantumLongPixel(QuantumInfo *quantum_info,
   const size_t pixel,unsigned char *magick_restrict pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -245,7 +245,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -255,7 +255,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -269,7 +269,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -294,7 +294,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -351,7 +351,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -376,7 +376,7 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -425,7 +425,7 @@
     }
     case 12:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -549,7 +549,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -582,7 +582,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -651,7 +651,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -660,7 +660,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -680,13 +680,13 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -775,7 +775,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -812,7 +812,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -895,7 +895,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -904,7 +904,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -924,13 +924,13 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -1019,7 +1019,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1056,7 +1056,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1139,7 +1139,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1152,7 +1152,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1166,7 +1166,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1191,7 +1191,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1248,7 +1248,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -1257,7 +1257,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1271,7 +1271,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1296,7 +1296,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1353,11 +1353,11 @@
   Quantum
     cbcr[4];
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned int
+  unsigned int
     pixel;
 
   size_t
@@ -1465,7 +1465,7 @@
   const MagickSizeType number_pixels,const Quantum *magick_restrict p,
   unsigned char *magick_restrict q,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1478,7 +1478,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1498,7 +1498,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1535,7 +1535,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1610,7 +1610,7 @@
   const MagickSizeType number_pixels,const Quantum *magick_restrict p,
   unsigned char *magick_restrict q,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1623,7 +1623,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1645,7 +1645,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1686,7 +1686,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1775,7 +1775,7 @@
   const MagickSizeType number_pixels,const Quantum *magick_restrict p,
   unsigned char *magick_restrict q,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1788,7 +1788,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -1810,7 +1810,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1851,7 +1851,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -1943,7 +1943,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -1952,10 +1952,10 @@
   {
     case 1:
     {
-      register double
+      double
         threshold;
 
-      register unsigned char
+      unsigned char
         black,
         white;
 
@@ -2005,7 +2005,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) (number_pixels-1) ; x+=2)
@@ -2029,7 +2029,7 @@
     }
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2046,7 +2046,7 @@
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register unsigned int
+          unsigned int
             pixel;
 
           for (x=0; x < (ssize_t) (number_pixels-2); x+=3)
@@ -2084,7 +2084,7 @@
     }
     case 12:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -2111,7 +2111,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2136,7 +2136,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2201,7 +2201,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -2210,10 +2210,10 @@
   {
     case 1:
     {
-      register double
+      double
         threshold;
 
-      register unsigned char
+      unsigned char
         black,
         pixel,
         white;
@@ -2273,7 +2273,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels ; x++)
@@ -2289,7 +2289,7 @@
     }
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2305,7 +2305,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2334,7 +2334,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2407,7 +2407,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -2416,7 +2416,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2430,7 +2430,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2455,7 +2455,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2509,7 +2509,7 @@
   const MagickSizeType number_pixels,const Quantum *magick_restrict p,
   unsigned char *magick_restrict q,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2525,7 +2525,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=((ssize_t) number_pixels-7); x > 0; x-=8)
@@ -2571,7 +2571,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) (number_pixels-1) ; x+=2)
@@ -2677,7 +2677,7 @@
   const Quantum *magick_restrict p,unsigned char *magick_restrict q,
   ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2693,7 +2693,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=((ssize_t) number_pixels-3); x > 0; x-=4)
@@ -2742,7 +2742,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels ; x++)
@@ -2758,7 +2758,7 @@
     }
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2773,7 +2773,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2802,7 +2802,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2875,7 +2875,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -2884,7 +2884,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -2898,7 +2898,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2923,7 +2923,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -2980,7 +2980,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -2989,7 +2989,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3003,7 +3003,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3028,7 +3028,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3085,7 +3085,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -3109,7 +3109,7 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -3158,7 +3158,7 @@
     }
     case 12:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -3282,7 +3282,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3315,7 +3315,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3384,7 +3384,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -3393,7 +3393,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3413,13 +3413,13 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -3508,7 +3508,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3545,7 +3545,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3628,7 +3628,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(exception != (ExceptionInfo *) NULL);
@@ -3637,7 +3637,7 @@
   {
     case 8:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < (ssize_t) number_pixels; x++)
@@ -3657,13 +3657,13 @@
     }
     case 10:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -3752,7 +3752,7 @@
     }
     case 16:
     {
-      register unsigned short
+      unsigned short
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3789,7 +3789,7 @@
     }
     case 32:
     {
-      register unsigned int
+      unsigned int
         pixel;
 
       if (quantum_info->format == FloatingPointQuantumFormat)
@@ -3873,13 +3873,13 @@
   MagickSizeType
     number_pixels;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
@@ -3908,7 +3908,7 @@
       double
         Sa;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       /*
@@ -3920,7 +3920,7 @@
         q=GetAuthenticPixelQueue(image);
       for (x=0; x < (ssize_t) image->columns; x++)
       {
-        register ssize_t
+        ssize_t
           i;
 
         Sa=QuantumScale*GetPixelAlpha(image,q);
@@ -3940,7 +3940,7 @@
       Quantum
         quantum;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       if (image_view != (CacheView *) NULL)
@@ -4073,7 +4073,7 @@
       Quantum
         quantum;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       if (image_view != (CacheView *) NULL)
diff --git a/MagickCore/quantum-import.c b/MagickCore/quantum-import.c
index d30418d..9558d26 100644
--- a/MagickCore/quantum-import.c
+++ b/MagickCore/quantum-import.c
@@ -22,7 +22,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -242,10 +242,10 @@
 static inline const unsigned char *PushQuantumPixel(QuantumInfo *quantum_info,
   const unsigned char *magick_restrict pixels,unsigned int *quantum)
 {
-  register ssize_t
+  ssize_t
     i;
 
-  register size_t
+  size_t
     quantum_bits;
 
   *quantum=(QuantumAny) 0;
@@ -272,10 +272,10 @@
   QuantumInfo *quantum_info,const unsigned char *magick_restrict pixels,
   unsigned int *quantum)
 {
-  register ssize_t
+  ssize_t
     i;
 
-  register size_t
+  size_t
     quantum_bits;
 
   *quantum=0UL;
@@ -305,7 +305,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -442,7 +442,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -786,7 +786,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -821,7 +821,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -1049,7 +1049,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -1084,7 +1084,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -1312,7 +1312,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1453,7 +1453,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -1590,7 +1590,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   unsigned int
@@ -1608,7 +1608,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -1684,7 +1684,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -1875,7 +1875,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -2083,7 +2083,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   if (image->colorspace != CMYKColorspace)
@@ -2291,7 +2291,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2303,7 +2303,7 @@
   {
     case 1:
     {
-      register Quantum
+      Quantum
         black,
         white;
 
@@ -2334,7 +2334,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -2647,7 +2647,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2659,7 +2659,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       bit=0;
@@ -2690,7 +2690,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -2886,7 +2886,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -3023,7 +3023,7 @@
   MagickBooleanType
     range_exception;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -3040,7 +3040,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < ((ssize_t) number_pixels-7); x+=8)
@@ -3076,7 +3076,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=0; x < ((ssize_t) number_pixels-1); x+=2)
@@ -3260,7 +3260,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -3277,7 +3277,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       for (x=((ssize_t) number_pixels-3); x > 0; x-=4)
@@ -3312,7 +3312,7 @@
     }
     case 4:
     {
-      register unsigned char
+      unsigned char
         pixel;
 
       range=GetQuantumRange(quantum_info->depth);
@@ -3500,7 +3500,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -3637,7 +3637,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -3774,7 +3774,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -4118,7 +4118,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -4153,7 +4153,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -4381,7 +4381,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(image != (Image *) NULL);
@@ -4416,7 +4416,7 @@
       pixel=0;
       if (quantum_info->pack == MagickFalse)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -4645,13 +4645,13 @@
   MagickSizeType
     number_pixels;
 
-  register const unsigned char
+  const unsigned char
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
   size_t
@@ -4819,7 +4819,7 @@
         q=GetCacheViewAuthenticPixelQueue(image_view);
       for (x=0; x < (ssize_t) number_pixels; x++)
       {
-        register ssize_t
+        ssize_t
           i;
 
         Sa=QuantumScale*GetPixelAlpha(image,q);
diff --git a/MagickCore/quantum-private.h b/MagickCore/quantum-private.h
index 317a65a..4d6a2ff 100644
--- a/MagickCore/quantum-private.h
+++ b/MagickCore/quantum-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -125,7 +125,7 @@
       single_precision;
   } SinglePrecision;
 
-  register unsigned int
+  unsigned int
     exponent,
     significand,
     sign_bit;
@@ -192,7 +192,7 @@
 static inline unsigned char *PopLongPixel(const EndianType endian,
   const unsigned int pixel,unsigned char *magick_restrict pixels)
 {
-  register unsigned int
+  unsigned int
     quantum;
 
   quantum=(unsigned int) pixel;
@@ -214,7 +214,7 @@
 static inline unsigned char *PopShortPixel(const EndianType endian,
   const unsigned short pixel,unsigned char *magick_restrict pixels)
 {
-  register unsigned int
+  unsigned int
     quantum;
 
   quantum=pixel;
@@ -241,7 +241,7 @@
   const unsigned char *magick_restrict pixels,
   unsigned int *magick_restrict pixel)
 {
-  register unsigned int
+  unsigned int
     quantum;
 
   if (endian == LSBEndian)
@@ -265,7 +265,7 @@
   const unsigned char *magick_restrict pixels,
   unsigned short *magick_restrict pixel)
 {
-  register unsigned int
+  unsigned int
     quantum;
 
   if (endian == LSBEndian)
@@ -710,10 +710,10 @@
       single_precision;
   } SinglePrecision;
 
-  register int
+  int
     exponent;
 
-  register unsigned int
+  unsigned int
     significand,
     sign_bit;
 
@@ -771,7 +771,7 @@
       float
         alpha;
 
-      register int
+      int
         i;
 
       /*
diff --git a/MagickCore/quantum.c b/MagickCore/quantum.c
index 7f88a50..706b9ea 100644
--- a/MagickCore/quantum.c
+++ b/MagickCore/quantum.c
@@ -16,7 +16,7 @@
 %                               October 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -156,7 +156,7 @@
 static MagickBooleanType AcquireQuantumPixels(QuantumInfo *quantum_info,
   const size_t extent)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(quantum_info != (QuantumInfo *) NULL);
@@ -247,7 +247,7 @@
 */
 static void DestroyQuantumPixels(QuantumInfo *quantum_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/quantum.h b/MagickCore/quantum.h
index d50b4f1..4d9dd8e 100644
--- a/MagickCore/quantum.h
+++ b/MagickCore/quantum.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/random-private.h b/MagickCore/random-private.h
index 3a6cd99..f0bd4b3 100644
--- a/MagickCore/random-private.h
+++ b/MagickCore/random-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -39,7 +39,7 @@
 static inline RandomInfo **DestroyRandomInfoThreadSet(
   RandomInfo **random_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(random_info != (RandomInfo **) NULL);
@@ -51,7 +51,7 @@
 
 static inline RandomInfo **AcquireRandomInfoThreadSet(void)
 {
-  register ssize_t
+  ssize_t
     i;
 
   RandomInfo
diff --git a/MagickCore/random.c b/MagickCore/random.c
index b592143..e197e53 100644
--- a/MagickCore/random.c
+++ b/MagickCore/random.c
@@ -16,7 +16,7 @@
 %                              December 2001                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -319,7 +319,7 @@
 #if !defined(MAGICKCORE_WINDOWS_SUPPORT)
 static ssize_t ReadRandom(int file,unsigned char *source,size_t length)
 {
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -498,7 +498,7 @@
     */
     if (environ != (char **) NULL)
       {
-        register ssize_t
+        ssize_t
           i;
 
         /*
@@ -831,7 +831,7 @@
 
 static inline void IncrementRandomNonce(StringInfo *nonce)
 {
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -850,10 +850,10 @@
 MagickExport void SetRandomKey(RandomInfo *random_info,const size_t length,
   unsigned char *key)
 {
-  register size_t
+  size_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   SignatureInfo
diff --git a/MagickCore/random_.h b/MagickCore/random_.h
index d72ff6a..6d674e2 100644
--- a/MagickCore/random_.h
+++ b/MagickCore/random_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/registry-private.h b/MagickCore/registry-private.h
index af768e4..f4c05d5 100644
--- a/MagickCore/registry-private.h
+++ b/MagickCore/registry-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/registry.c b/MagickCore/registry.c
index d306f0a..9595464 100644
--- a/MagickCore/registry.c
+++ b/MagickCore/registry.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -111,7 +111,7 @@
     key[MagickPathExtent],
     value[MagickPathExtent];
 
-  register char
+  char
     *p;
 
   assert(option != (const char *) NULL);
@@ -423,7 +423,7 @@
 
 static void *DestroyRegistryNode(void *registry_info)
 {
-  register RegistryInfo
+  RegistryInfo
     *p;
 
   p=(RegistryInfo *) registry_info;
diff --git a/MagickCore/registry.h b/MagickCore/registry.h
index 14a1314..f36adde 100644
--- a/MagickCore/registry.h
+++ b/MagickCore/registry.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resample-private.h b/MagickCore/resample-private.h
index c55840b..ec89a86 100644
--- a/MagickCore/resample-private.h
+++ b/MagickCore/resample-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -27,7 +27,7 @@
 static inline ResampleFilter **DestroyResampleFilterThreadSet(
   ResampleFilter **filter)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(filter != (ResampleFilter **) NULL);
@@ -42,7 +42,7 @@
   const Image *image,const VirtualPixelMethod method,
   const MagickBooleanType interpolate,ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ResampleFilter
diff --git a/MagickCore/resample.c b/MagickCore/resample.c
index ac58f6a..2acb329 100644
--- a/MagickCore/resample.c
+++ b/MagickCore/resample.c
@@ -18,7 +18,7 @@
 %                                August 2007                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -208,7 +208,7 @@
 MagickExport ResampleFilter *AcquireResampleFilter(const Image *image,
   ExceptionInfo *exception)
 {
-  register ResampleFilter
+  ResampleFilter
     *resample_filter;
 
   assert(image != (Image *) NULL);
@@ -323,8 +323,8 @@
   double u1;
   double U,V,Q,DQ,DDQ;
   double divisor_c,divisor_m;
-  register double weight;
-  register const Quantum *pixels;
+  double weight;
+  const Quantum *pixels;
   assert(resample_filter != (ResampleFilter *) NULL);
   assert(resample_filter->signature == MagickCoreSignature);
 
@@ -1197,7 +1197,7 @@
   }
 
   /* Scale ellipse formula to directly index the Filter Lookup Table */
-  { register double scale;
+  { double scale;
 #if FILTER_LUT
     /* scale so that F = WLUT_WIDTH; -- hardcoded */
     scale = (double)WLUT_WIDTH/F;
@@ -1281,7 +1281,7 @@
 
 #if FILTER_LUT
   /* Fill the LUT with the weights from the selected filter function */
-  { register int
+  { int
        Q;
     double
        r_scale;
@@ -1336,7 +1336,7 @@
     if (IsStringTrue(GetImageArtifact(resample_filter->image,
         "resample:verbose")) != MagickFalse)
       {
-        register int
+        int
           Q;
         double
           r_scale;
diff --git a/MagickCore/resample.h b/MagickCore/resample.h
index 6da9008..ecfc555 100644
--- a/MagickCore/resample.h
+++ b/MagickCore/resample.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resize-private.h b/MagickCore/resize-private.h
index e299601..336625a 100644
--- a/MagickCore/resize-private.h
+++ b/MagickCore/resize-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resize.c b/MagickCore/resize.c
index af73fa7..f309eb1 100644
--- a/MagickCore/resize.c
+++ b/MagickCore/resize.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -384,7 +384,7 @@
   double
     value;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -770,7 +770,7 @@
     C,
     value;
 
-  register ResizeFilter
+  ResizeFilter
     *resize_filter;
 
   /*
@@ -1345,7 +1345,7 @@
     t,
     y;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1369,7 +1369,7 @@
     p,
     q;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const double
@@ -1415,7 +1415,7 @@
     p,
     q;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const double
@@ -1455,7 +1455,7 @@
     p,
     q;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const double
@@ -1763,10 +1763,10 @@
     PointInfo
       offset;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1778,7 +1778,7 @@
     offset.y=((double) y+0.5)*scale.y-0.5;
     for (x=0; x < (ssize_t) resize_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1896,7 +1896,7 @@
   MemoryInfo
     *pixel_info;
 
-  register gfloat
+  gfloat
     *q;
 
   ssize_t
@@ -1927,10 +1927,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1943,7 +1943,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1980,10 +1980,10 @@
   (void) lqr_carver_scan_reset(carver);
   while (lqr_carver_scan_ext(carver,&x_offset,&y_offset,(void **) &packet) != 0)
   {
-    register Quantum
+    Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       i;
 
     p=QueueCacheViewAuthenticPixels(rescale_view,x_offset,y_offset,1,1,
@@ -2063,7 +2063,7 @@
 static inline void CopyPixels(const Quantum *source,const ssize_t source_offset,
   Quantum *destination,const ssize_t destination_offset,const size_t channels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) channels; i++)
@@ -2077,12 +2077,12 @@
   ssize_t
     sum;
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) channels; i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     sum=0;
@@ -2105,7 +2105,7 @@
 static inline int PixelsEqual(const Quantum *source1,ssize_t offset1,
   const Quantum *source2,ssize_t offset2,const size_t channels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   offset1*=channels;
@@ -2434,7 +2434,7 @@
     be,
     de;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2589,7 +2589,7 @@
   if (PixelsEqual(pixels,1,pixels,7,channels) ||
       PixelsEqual(pixels,3,pixels,5,channels))
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < 4; i++)
@@ -2626,7 +2626,7 @@
     ) \
   )
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < 4; i++)
@@ -2814,7 +2814,7 @@
     }
   else
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < 9; i++)
@@ -2999,10 +2999,10 @@
     Quantum
       r[128]; /* to hold result pixels */
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3019,13 +3019,13 @@
     */
     for (x=0; x < (ssize_t) source_image->columns; x++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
       size_t
         channels;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -3227,7 +3227,7 @@
 static ContributionInfo **DestroyContributionThreadSet(
   ContributionInfo **contribution)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(contribution != (ContributionInfo **) NULL);
@@ -3241,7 +3241,7 @@
 
 static ContributionInfo **AcquireContributionThreadSet(const size_t count)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ContributionInfo
@@ -3334,16 +3334,16 @@
       bisect,
       density;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ContributionInfo
+    ContributionInfo
       *magick_restrict contribution;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       y;
 
     ssize_t
@@ -3369,7 +3369,7 @@
       continue;
     if ((density != 0.0) && (density != 1.0))
       {
-        register ssize_t
+        ssize_t
           i;
 
         /*
@@ -3390,7 +3390,7 @@
       }
     for (y=0; y < (ssize_t) resize_image->rows; y++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3407,7 +3407,7 @@
           resize_traits,
           traits;
 
-        register ssize_t
+        ssize_t
           j;
 
         ssize_t
@@ -3552,16 +3552,16 @@
       bisect,
       density;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ContributionInfo
+    ContributionInfo
       *magick_restrict contribution;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -3587,7 +3587,7 @@
       continue;
     if ((density != 0.0) && (density != 1.0))
       {
-        register ssize_t
+        ssize_t
           i;
 
         /*
@@ -3609,7 +3609,7 @@
       }
     for (x=0; x < (ssize_t) resize_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3626,7 +3626,7 @@
           resize_traits,
           traits;
 
-        register ssize_t
+        ssize_t
           j;
 
         ssize_t
@@ -3866,7 +3866,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     x1;
 
   ssize_t
@@ -3942,13 +3942,13 @@
 #endif
   for (y=0; y < (ssize_t) sample_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     ssize_t
@@ -3972,7 +3972,7 @@
     */
     for (x=0; x < (ssize_t) sample_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if (GetPixelWriteMask(sample_image,q) <= (QuantumRange/2))
@@ -4083,7 +4083,7 @@
     scale,
     span;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -4154,13 +4154,13 @@
   scale_view=AcquireAuthenticCacheView(scale_image,exception);
   for (y=0; y < (ssize_t) scale_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/MagickCore/resize.h b/MagickCore/resize.h
index e543760..ee131a3 100644
--- a/MagickCore/resize.h
+++ b/MagickCore/resize.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resource-private.h b/MagickCore/resource-private.h
index e037a62..b5d3f2a 100644
--- a/MagickCore/resource-private.h
+++ b/MagickCore/resource-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/resource.c b/MagickCore/resource.c
index 53ecb86..657927a 100644
--- a/MagickCore/resource.c
+++ b/MagickCore/resource.c
@@ -17,7 +17,7 @@
 %                               September 2002                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -126,8 +126,8 @@
     MagickULLConstant(0),              /* initial thread */
     MagickULLConstant(0),              /* initial throttle */
     MagickULLConstant(0),              /* initial time */
-    (INT_MAX/(5*sizeof(Quantum))),     /* width limit */
-    (INT_MAX/(5*sizeof(Quantum))),     /* height limit */
+    LONG_MAX/sizeof(Quantum)/5,        /* width limit */
+    LONG_MAX/sizeof(Quantum)/5,        /* height limit */
     MagickResourceInfinity,            /* list length limit */
     MagickULLConstant(3072)*1024*1024, /* area limit */
     MagickULLConstant(1536)*1024*1024, /* memory limit */
@@ -533,7 +533,7 @@
   directory=DestroyString(directory);
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
   {
-    register char
+    char
       *p;
 
     /*
@@ -561,10 +561,10 @@
     c,
     file;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const char
@@ -591,7 +591,7 @@
   file=(-1);
   for (i=0; i < (ssize_t) TMP_MAX; i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     /*
@@ -1148,7 +1148,7 @@
   MagickSizeType
     memory;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1308,7 +1308,7 @@
 */
 MagickPrivate void ResourceComponentTerminus(void)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) NumberOfResourceTypes; i++)
@@ -1416,7 +1416,7 @@
         resource_info.height_limit=MagickMin(limit,StringToMagickSizeType(
           value,100.0));
       resource_info.height_limit=MagickMin(resource_info.height_limit,
-        (MagickSizeType) SSIZE_MAX);
+        (MagickSizeType) LONG_MAX);
       break;
     }
     case ListLengthResource:
@@ -1494,7 +1494,7 @@
         resource_info.width_limit=MagickMin(limit,StringToMagickSizeType(value,
           100.0));
       resource_info.width_limit=MagickMin(resource_info.width_limit,
-        (MagickSizeType) SSIZE_MAX);
+        (MagickSizeType) LONG_MAX);
       break;
     }
     default:
diff --git a/MagickCore/resource_.h b/MagickCore/resource_.h
index 80e8bc9..ce4d8f2 100644
--- a/MagickCore/resource_.h
+++ b/MagickCore/resource_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/segment.c b/MagickCore/segment.c
index ba10779..25e0695 100644
--- a/MagickCore/segment.c
+++ b/MagickCore/segment.c
@@ -17,7 +17,7 @@
 %                                April 1993                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -221,8 +221,7 @@
 %  The format of the Classify method is:
 %
 %      MagickBooleanType Classify(Image *image,short **extrema,
-%        const double cluster_threshold,
-%        const double weighting_exponent,
+%        const double cluster_threshold,const double weighting_exponent,
 %        const MagickBooleanType verbose,ExceptionInfo *exception)
 %
 %  A description of each parameter follows.
@@ -246,9 +245,8 @@
 %
 */
 static MagickBooleanType Classify(Image *image,short **extrema,
-  const double cluster_threshold,
-  const double weighting_exponent,const MagickBooleanType verbose,
-  ExceptionInfo *exception)
+  const double cluster_threshold,const double weighting_exponent,
+  const MagickBooleanType verbose,ExceptionInfo *exception)
 {
 #define SegmentImageTag  "Segment/Image"
 #define ThrowClassifyException(severity,tag,label) \
@@ -276,6 +274,9 @@
     *last_cluster,
     *next_cluster;
 
+  double
+    *free_squares;
+
   ExtentPacket
     blue,
     green,
@@ -284,16 +285,13 @@
   MagickOffsetType
     progress;
 
-  double
-    *free_squares;
-
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register double
+  double
     *squares;
 
   size_t
@@ -331,7 +329,7 @@
           }
         else
           {
-            cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
+            cluster=(Cluster *) AcquireQuantumMemory(1,sizeof(*cluster));
             head=cluster;
           }
         if (cluster == (Cluster *) NULL)
@@ -340,11 +338,10 @@
         /*
           Initialize a new class.
         */
-        cluster->count=0;
+        (void) memset(cluster,0,sizeof(*cluster));
         cluster->red=red;
         cluster->green=green;
         cluster->blue=blue;
-        cluster->next=(Cluster *) NULL;
       }
     }
   }
@@ -353,18 +350,17 @@
       /*
         No classes were identified-- create one.
       */
-      cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
+      cluster=(Cluster *) AcquireQuantumMemory(1,sizeof(*cluster));
       if (cluster == (Cluster *) NULL)
         ThrowClassifyException(ResourceLimitError,"MemoryAllocationFailed",
           image->filename);
       /*
         Initialize a new class.
       */
-      cluster->count=0;
+      (void) memset(cluster,0,sizeof(*cluster));
       cluster->red=red;
       cluster->green=green;
       cluster->blue=blue;
-      cluster->next=(Cluster *) NULL;
       head=cluster;
     }
   /*
@@ -376,10 +372,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -387,30 +383,27 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
+      PixelInfo
+        pixel;
+
+      pixel.red=(double) ScaleQuantumToChar(GetPixelRed(image,p));
+      pixel.green=(double) ScaleQuantumToChar(GetPixelGreen(image,p));
+      pixel.blue=(double) ScaleQuantumToChar(GetPixelBlue(image,p));
       for (cluster=head; cluster != (Cluster *) NULL; cluster=cluster->next)
-        if (((ssize_t) ScaleQuantumToChar(GetPixelRed(image,p)) >=
-             (cluster->red.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelRed(image,p)) <=
-             (cluster->red.right+SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,p)) >=
-             (cluster->green.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,p)) <=
-             (cluster->green.right+SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,p)) >=
-             (cluster->blue.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,p)) <=
-             (cluster->blue.right+SafeMargin)))
+        if ((pixel.red >= (double) (cluster->red.left-SafeMargin)) &&
+            (pixel.red <= (double) (cluster->red.right+SafeMargin)) &&
+            (pixel.green >= (double) (cluster->green.left-SafeMargin)) &&
+            (pixel.green <= (double) (cluster->green.right+SafeMargin)) &&
+            (pixel.blue >= (double) (cluster->blue.left-SafeMargin)) &&
+            (pixel.blue <= (double) (cluster->blue.right+SafeMargin)))
           {
             /*
               Count this pixel.
             */
             count++;
-            cluster->red.center+=(double) ScaleQuantumToChar(
-              GetPixelRed(image,p));
-            cluster->green.center+=(double) ScaleQuantumToChar(
-              GetPixelGreen(image,p));
-            cluster->blue.center+=(double) ScaleQuantumToChar(
-              GetPixelBlue(image,p));
+            cluster->red.center+=pixel.red;
+            cluster->green.center+=pixel.green;
+            cluster->blue.center+=pixel.blue;
             cluster->count++;
             break;
           }
@@ -557,15 +550,15 @@
   for (y=0; y < (ssize_t) image->rows; y++)
   {
     Cluster
-      *clust;
+      *cluster;
 
-    register const PixelInfo
+    const PixelInfo
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -578,30 +571,30 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
+      PixelInfo
+        pixel;
+
       SetPixelIndex(image,(Quantum) 0,q);
-      for (clust=head; clust != (Cluster *) NULL; clust=clust->next)
+      pixel.red=(double) ScaleQuantumToChar(GetPixelRed(image,q));
+      pixel.green=(double) ScaleQuantumToChar(GetPixelGreen(image,q));
+      pixel.blue=(double) ScaleQuantumToChar(GetPixelBlue(image,q));
+      for (cluster=head; cluster != (Cluster *) NULL; cluster=cluster->next)
       {
-        if (((ssize_t) ScaleQuantumToChar(GetPixelRed(image,q)) >=
-             (clust->red.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelRed(image,q)) <=
-             (clust->red.right+SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,q)) >=
-             (clust->green.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,q)) <=
-             (clust->green.right+SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,q)) >=
-             (clust->blue.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,q)) <=
-             (clust->blue.right+SafeMargin)))
+        if ((pixel.red >= (double) (cluster->red.left-SafeMargin)) &&
+            (pixel.red <= (double) (cluster->red.right+SafeMargin)) &&
+            (pixel.green >= (double) (cluster->green.left-SafeMargin)) &&
+            (pixel.green <= (double) (cluster->green.right+SafeMargin)) &&
+            (pixel.blue >= (double) (cluster->blue.left-SafeMargin)) &&
+            (pixel.blue <= (double) (cluster->blue.right+SafeMargin)))
           {
             /*
               Classify this pixel.
             */
-            SetPixelIndex(image,(Quantum) clust->id,q);
+            SetPixelIndex(image,(Quantum) cluster->id,q);
             break;
           }
       }
-      if (clust == (Cluster *) NULL)
+      if (cluster == (Cluster *) NULL)
         {
           double
             distance_squared,
@@ -610,7 +603,7 @@
             ratio,
             sum;
 
-          register ssize_t
+          ssize_t
             j,
             k;
 
@@ -622,24 +615,18 @@
           {
             sum=0.0;
             p=image->colormap+j;
-            distance_squared=squares[(ssize_t) ScaleQuantumToChar(
-              GetPixelRed(image,q))-(ssize_t)
-              ScaleQuantumToChar(ClampToQuantum(p->red))]+squares[(ssize_t)
-              ScaleQuantumToChar(GetPixelGreen(image,q))-(ssize_t)
-              ScaleQuantumToChar(ClampToQuantum(p->green))]+squares[(ssize_t)
-              ScaleQuantumToChar(GetPixelBlue(image,q))-(ssize_t)
-              ScaleQuantumToChar(ClampToQuantum(p->blue))];
+            distance_squared=
+              squares[(ssize_t) (pixel.red-ScaleQuantumToChar(p->red))]+
+              squares[(ssize_t) (pixel.green-ScaleQuantumToChar(p->green))]+
+              squares[(ssize_t) (pixel.blue-ScaleQuantumToChar(p->blue))];
             numerator=distance_squared;
             for (k=0; k < (ssize_t) image->colors; k++)
             {
               p=image->colormap+k;
-                distance_squared=squares[(ssize_t) ScaleQuantumToChar(
-                  GetPixelRed(image,q))-(ssize_t)
-                  ScaleQuantumToChar(ClampToQuantum(p->red))]+squares[
-                  (ssize_t) ScaleQuantumToChar(GetPixelGreen(image,q))-(ssize_t)
-                  ScaleQuantumToChar(ClampToQuantum(p->green))]+squares[
-                  (ssize_t) ScaleQuantumToChar(GetPixelBlue(image,q))-(ssize_t)
-                  ScaleQuantumToChar(ClampToQuantum(p->blue))];
+              distance_squared=
+                squares[(ssize_t) (pixel.red-ScaleQuantumToChar(p->red))]+
+                squares[(ssize_t) (pixel.green-ScaleQuantumToChar(p->green))]+
+                squares[(ssize_t) (pixel.blue-ScaleQuantumToChar(p->blue))];
               ratio=numerator/distance_squared;
               sum+=SegmentPower(ratio);
             }
@@ -717,7 +704,7 @@
 static void ConsolidateCrossings(ZeroCrossing *zero_crossing,
   const size_t number_crossings)
 {
-  register ssize_t
+  ssize_t
     i,
     j,
     k,
@@ -890,7 +877,7 @@
 static void DerivativeHistogram(const double *histogram,
   double *derivative)
 {
-  register ssize_t
+  ssize_t
     i,
     n;
 
@@ -967,10 +954,10 @@
   double
     threshold;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1043,7 +1030,7 @@
           }
         else
           {
-            cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
+            cluster=(Cluster *) AcquireQuantumMemory(1,sizeof(*cluster));
             head=cluster;
           }
         if (cluster == (Cluster *) NULL)
@@ -1069,7 +1056,7 @@
       /*
         No classes were identified-- create one.
       */
-      cluster=(Cluster *) AcquireMagickMemory(sizeof(*cluster));
+      cluster=(Cluster *) AcquireQuantumMemory(1,sizeof(*cluster));
       if (cluster == (Cluster *) NULL)
         {
           (void) ThrowMagickException(exception,GetMagickModule(),
@@ -1097,30 +1084,27 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
+      PixelInfo
+        pixel;
+
+      pixel.red=(double) ScaleQuantumToChar(GetPixelRed(image,p));
+      pixel.green=(double) ScaleQuantumToChar(GetPixelGreen(image,p));
+      pixel.blue=(double) ScaleQuantumToChar(GetPixelBlue(image,p));
       for (cluster=head; cluster != (Cluster *) NULL; cluster=cluster->next)
-        if (((ssize_t) ScaleQuantumToChar(GetPixelRed(image,p)) >=
-             (cluster->red.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelRed(image,p)) <=
-             (cluster->red.right+SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,p)) >=
-             (cluster->green.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelGreen(image,p)) <=
-             (cluster->green.right+SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,p)) >=
-             (cluster->blue.left-SafeMargin)) &&
-            ((ssize_t) ScaleQuantumToChar(GetPixelBlue(image,p)) <=
-             (cluster->blue.right+SafeMargin)))
+        if ((pixel.red >= (double) (cluster->red.left-SafeMargin)) &&
+            (pixel.red <= (double) (cluster->red.right+SafeMargin)) &&
+            (pixel.green >= (double) (cluster->green.left-SafeMargin)) &&
+            (pixel.green <= (double) (cluster->green.right+SafeMargin)) &&
+            (pixel.blue >= (double) (cluster->blue.left-SafeMargin)) &&
+            (pixel.blue <= (double) (cluster->blue.right+SafeMargin)))
           {
             /*
               Count this pixel.
             */
             count++;
-            cluster->red.center+=(double) ScaleQuantumToChar(
-              GetPixelRed(image,p));
-            cluster->green.center+=(double) ScaleQuantumToChar(
-              GetPixelGreen(image,p));
-            cluster->blue.center+=(double) ScaleQuantumToChar(
-              GetPixelBlue(image,p));
+            cluster->red.center+=pixel.red;
+            cluster->green.center+=pixel.green;
+            cluster->blue.center+=pixel.blue;
             cluster->count++;
             break;
           }
@@ -1239,10 +1223,10 @@
 static void InitializeHistogram(const Image *image,ssize_t **histogram,
   ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1314,7 +1298,7 @@
 
 static void MeanStability(IntervalTree *node)
 {
-  register IntervalTree
+  IntervalTree
     *child;
 
   if (node == (IntervalTree *) NULL)
@@ -1323,10 +1307,10 @@
   child=node->child;
   if (child != (IntervalTree *) NULL)
     {
-      register ssize_t
+      ssize_t
         count;
 
-      register double
+      double
         sum;
 
       sum=0.0;
@@ -1363,7 +1347,7 @@
     *node,
     *root;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1524,6 +1508,13 @@
   const double min_tau,const double delta_tau,const double smooth_threshold,
   short *extrema)
 {
+  double
+    average_tau,
+    *derivative,
+    *second_derivative,
+    tau,
+    value;
+
   IntervalTree
     **list,
     *node,
@@ -1532,14 +1523,7 @@
   MagickBooleanType
     peak;
 
-  double
-    average_tau,
-    *derivative,
-    *second_derivative,
-    tau,
-    value;
-
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1635,7 +1619,7 @@
       return(0.0);
     }
   /*
-    Find active nodes:  stability is greater (or equal) to the mean stability of
+    Find active nodes: Stability is greater (or equal) to the mean stability of
     its children.
   */
   number_nodes=0;
@@ -1729,7 +1713,6 @@
 %      of pixels for each intensity of a particular color component.
 %
 */
-
 static void ScaleSpace(const ssize_t *histogram,const double tau,
   double *scale_histogram)
 {
@@ -1739,14 +1722,13 @@
     *gamma,
     sum;
 
-  register ssize_t
+  ssize_t
     u,
     x;
 
   gamma=(double *) AcquireQuantumMemory(256,sizeof(*gamma));
   if (gamma == (double *) NULL)
-    ThrowFatalException(ResourceLimitFatalError,
-      "UnableToAllocateGammaMap");
+    ThrowFatalException(ResourceLimitFatalError,"UnableToAllocateGammaMap");
   alpha=PerceptibleReciprocal(tau*sqrt(2.0*MagickPI));
   beta=(-1.0*PerceptibleReciprocal(2.0*tau*tau));
   for (x=0; x <= 255; x++)
@@ -1820,7 +1802,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   short
@@ -1857,12 +1839,12 @@
   previous_colorspace=image->colorspace;
   (void) TransformImageColorspace(image,colorspace,exception);
   InitializeHistogram(image,histogram,exception);
-  (void) OptimalTau(histogram[Red],Tau,0.2,DeltaTau,
-    smooth_threshold == 0.0 ? 1.0 : smooth_threshold,extrema[Red]);
-  (void) OptimalTau(histogram[Green],Tau,0.2,DeltaTau,
-    smooth_threshold == 0.0 ? 1.0 : smooth_threshold,extrema[Green]);
-  (void) OptimalTau(histogram[Blue],Tau,0.2,DeltaTau,
-    smooth_threshold == 0.0 ? 1.0 : smooth_threshold,extrema[Blue]);
+  (void) OptimalTau(histogram[Red],Tau,0.2,DeltaTau,smooth_threshold == 0.0 ?
+    1.0 : smooth_threshold,extrema[Red]);
+  (void) OptimalTau(histogram[Green],Tau,0.2,DeltaTau,smooth_threshold == 0.0 ?
+    1.0 : smooth_threshold,extrema[Green]);
+  (void) OptimalTau(histogram[Blue],Tau,0.2,DeltaTau,smooth_threshold == 0.0 ?
+    1.0 : smooth_threshold,extrema[Blue]);
   /*
     Classify using the fuzzy c-Means technique.
   */
@@ -1913,7 +1895,7 @@
 static void ZeroCrossHistogram(double *second_derivative,
   const double smooth_threshold,short *crossings)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickCore/segment.h b/MagickCore/segment.h
index 8aad589..7084c71 100644
--- a/MagickCore/segment.h
+++ b/MagickCore/segment.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/semaphore-private.h b/MagickCore/semaphore-private.h
index e72199d..c1940f8 100644
--- a/MagickCore/semaphore-private.h
+++ b/MagickCore/semaphore-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/semaphore.c b/MagickCore/semaphore.c
index 9742dae..cd44ab7 100644
--- a/MagickCore/semaphore.c
+++ b/MagickCore/semaphore.c
@@ -18,7 +18,7 @@
 %                                 June 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/semaphore.h b/MagickCore/semaphore.h
index 4f22c29..f7b28a7 100644
--- a/MagickCore/semaphore.h
+++ b/MagickCore/semaphore.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/shear.c b/MagickCore/shear.c
index 8b5ff3c..05703ca 100644
--- a/MagickCore/shear.c
+++ b/MagickCore/shear.c
@@ -17,7 +17,7 @@
 %                                  July 1992                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -127,7 +127,7 @@
     geometry,
     page;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -163,10 +163,10 @@
     if (max.y < extent[i].y)
       max.y=extent[i].y;
   }
-  geometry.x=(ssize_t) ceil(min.x-0.5);
-  geometry.y=(ssize_t) ceil(min.y-0.5);
-  geometry.width=(size_t) floor(max.x-min.x+0.5);
-  geometry.height=(size_t) floor(max.y-min.y+0.5);
+  geometry.x=CastDoubleToLong(ceil(min.x-0.5));
+  geometry.y=CastDoubleToLong(ceil(min.y-0.5));
+  geometry.width=(size_t) CastDoubleToLong(floor(max.x-min.x+0.5));
+  geometry.height=(size_t) CastDoubleToLong(floor(max.y-min.y+0.5));
   page=(*image)->page;
   (void) ParseAbsoluteGeometry("0x0+0+0",&(*image)->page);
   crop_image=CropImage(*image,&geometry,exception);
@@ -219,11 +219,11 @@
   MatrixInfo
     *swap;
 
-  register MatrixInfo
+  MatrixInfo
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -235,7 +235,7 @@
   {
     for (x=0; x < (ssize_t) GetMatrixColumns(p); x+=2*(ssize_t) step)
     {
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -295,7 +295,7 @@
 #endif
   for (x=0; x < (ssize_t) GetMatrixColumns(p); x++)
   {
-    register ssize_t
+    ssize_t
       y;
 
     size_t
@@ -384,10 +384,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -441,10 +441,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -522,10 +522,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if ((y >= offset) && (y < ((ssize_t) image->rows-offset)))
@@ -582,7 +582,7 @@
   RectangleInfo
     geometry;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -785,7 +785,7 @@
 #endif
       for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
       {
-        register ssize_t
+        ssize_t
           tile_x;
 
         if (status == MagickFalse)
@@ -796,13 +796,13 @@
           MagickBooleanType
             sync;
 
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             y;
 
           size_t
@@ -824,10 +824,10 @@
             }
           for (y=0; y < (ssize_t) width; y++)
           {
-            register const Quantum
+            const Quantum
               *magick_restrict tile_pixels;
 
-            register ssize_t
+            ssize_t
               x;
 
             if (status == MagickFalse)
@@ -843,7 +843,7 @@
             tile_pixels=p+((height-1)*width+y)*GetPixelChannels(image);
             for (x=0; x < (ssize_t) height; x++)
             {
-              register ssize_t
+              ssize_t
                 i;
 
               for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -886,7 +886,7 @@
     }
     case 2:
     {
-      register ssize_t
+      ssize_t
         y;
 
       /*
@@ -901,13 +901,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -923,7 +923,7 @@
         q+=GetPixelChannels(rotate_image)*image->columns;
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           q-=GetPixelChannels(rotate_image);
@@ -982,7 +982,7 @@
 #endif
       for (tile_y=0; tile_y < (ssize_t) image->rows; tile_y+=(ssize_t) tile_height)
       {
-        register ssize_t
+        ssize_t
           tile_x;
 
         if (status == MagickFalse)
@@ -993,13 +993,13 @@
           MagickBooleanType
             sync;
 
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             y;
 
           size_t
@@ -1021,10 +1021,10 @@
             }
           for (y=0; y < (ssize_t) width; y++)
           {
-            register const Quantum
+            const Quantum
               *magick_restrict tile_pixels;
 
-            register ssize_t
+            ssize_t
               x;
 
             if (status == MagickFalse)
@@ -1039,7 +1039,7 @@
             tile_pixels=p+((width-1)-y)*GetPixelChannels(image);
             for (x=0; x < (ssize_t) height; x++)
             {
-              register ssize_t
+              ssize_t
                 i;
 
               for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1184,11 +1184,11 @@
       area,
       displacement;
 
-    register Quantum
+    Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i;
 
     ShearDirection
@@ -1217,7 +1217,7 @@
         displacement*=(-1.0);
         direction=LEFT;
       }
-    step=(ssize_t) floor((double) displacement);
+    step=CastDoubleToLong(floor((double) displacement));
     area=(double) (displacement-step);
     step++;
     pixel=background;
@@ -1401,11 +1401,11 @@
       source,
       destination;
 
-    register Quantum
+    Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i;
 
     ShearDirection
@@ -1434,7 +1434,7 @@
         displacement*=(-1.0);
         direction=UP;
       }
-    step=(ssize_t) floor((double) displacement);
+    step=CastDoubleToLong(floor((double) displacement));
     area=(double) (displacement-step);
     step++;
     pixel=background;
@@ -1617,11 +1617,12 @@
   /*
     Compute image size.
   */
-  bounds.width=image->columns+(ssize_t) floor(fabs(shear.x)*image->rows+0.5);
-  bounds.x=(ssize_t) ceil((double) image->columns+((fabs(shear.x)*image->rows)-
-    image->columns)/2.0-0.5);
-  bounds.y=(ssize_t) ceil((double) image->rows+((fabs(shear.y)*bounds.width)-
-    image->rows)/2.0-0.5);
+  bounds.width=image->columns+CastDoubleToLong(floor(fabs(shear.x)*
+    image->rows+0.5));
+  bounds.x=CastDoubleToLong(ceil((double) image->columns+((fabs(shear.x)*
+    image->rows)-image->columns)/2.0-0.5));
+  bounds.y=CastDoubleToLong(ceil((double) image->rows+((fabs(shear.y)*
+    bounds.width)-image->rows)/2.0-0.5));
   /*
     Surround image with border.
   */
@@ -1769,9 +1770,9 @@
   bounds.height=(size_t) floor(fabs((double) bounds.width*shear.y)+height+0.5);
   shear_width=(size_t) floor(fabs((double) bounds.height*shear.x)+
     bounds.width+0.5);
-  bounds.x=(ssize_t) floor((double) ((shear_width > bounds.width) ? width :
-    bounds.width-shear_width+2)/2.0+0.5);
-  bounds.y=(ssize_t) floor(((double) bounds.height-height+2)/2.0+0.5);
+  bounds.x=CastDoubleToLong(floor((double) ((shear_width > bounds.width) ?
+    width : bounds.width-shear_width+2)/2.0+0.5));
+  bounds.y=CastDoubleToLong(floor(((double) bounds.height-height+2)/2.0+0.5));
   /*
     Surround image with a border.
   */
diff --git a/MagickCore/shear.h b/MagickCore/shear.h
index 1f083db..11bcc09 100644
--- a/MagickCore/shear.h
+++ b/MagickCore/shear.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/signature-private.h b/MagickCore/signature-private.h
index f941d47..6067e4b 100644
--- a/MagickCore/signature-private.h
+++ b/MagickCore/signature-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/signature.c b/MagickCore/signature.c
index f0f0e42..2d9b080 100644
--- a/MagickCore/signature.c
+++ b/MagickCore/signature.c
@@ -16,7 +16,7 @@
 %                              December 1992                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -209,13 +209,13 @@
 */
 MagickPrivate void FinalizeSignature(SignatureInfo *signature_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
-  register unsigned int
+  unsigned int
     *p;
 
   size_t
@@ -479,7 +479,7 @@
   float
     pixel;
 
-  register const Quantum
+  const Quantum
     *p;
 
   SignatureInfo
@@ -507,10 +507,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register unsigned char
+    unsigned char
       *q;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -522,7 +522,7 @@
     q=pixels;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if (GetPixelReadMask(image,p) <= (QuantumRange/2))
@@ -532,7 +532,7 @@
         }
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
       {
-        register ssize_t
+        ssize_t
           j;
 
         PixelChannel channel = GetPixelChannelChannel(image,i);
@@ -599,10 +599,10 @@
 #define Suma1(x)  (RotateRight(x,6) ^ RotateRight(x,11) ^ RotateRight(x,25))
 #define Trunc32(x)  ((unsigned int) ((x) & 0xffffffffU))
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -766,10 +766,10 @@
 MagickPrivate void UpdateSignature(SignatureInfo *signature_info,
   const StringInfo *message)
 {
-  register size_t
+  size_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
diff --git a/MagickCore/signature.h b/MagickCore/signature.h
index 521d4f4..d21696f 100644
--- a/MagickCore/signature.h
+++ b/MagickCore/signature.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/splay-tree.c b/MagickCore/splay-tree.c
index 862266c..90bc9bb 100644
--- a/MagickCore/splay-tree.c
+++ b/MagickCore/splay-tree.c
@@ -23,7 +23,7 @@
 %                               December 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -157,7 +157,7 @@
   int
     compare;
 
-  register NodeInfo
+  NodeInfo
     *node;
 
   LockSemaphoreInfo(splay_tree->semaphore);
@@ -247,7 +247,7 @@
 static NodeInfo *LinkSplayTreeNodes(NodeInfo **nodes,const size_t low,
   const size_t high)
 {
-  register NodeInfo
+  NodeInfo
     *node;
 
   size_t
@@ -268,7 +268,7 @@
 
 static inline int SplayTreeToNodeArray(NodeInfo *node,const void *nodes)
 {
-  register const NodeInfo
+  const NodeInfo
     ***p;
 
   p=(const NodeInfo ***) nodes;
@@ -332,7 +332,7 @@
 
 static inline void *GetFirstSplayTreeNode(SplayTreeInfo *splay_tree)
 {
-  register NodeInfo
+  NodeInfo
     *node;
 
   node=splay_tree->root;
@@ -346,7 +346,7 @@
 MagickExport SplayTreeInfo *CloneSplayTree(SplayTreeInfo *splay_tree,
   void *(*clone_key)(void *),void *(*clone_value)(void *))
 {
-  register NodeInfo
+  NodeInfo
     *next,
     *node;
 
@@ -486,7 +486,7 @@
 MagickExport MagickBooleanType DeleteNodeByValueFromSplayTree(
   SplayTreeInfo *splay_tree,const void *value)
 {
-  register NodeInfo
+  NodeInfo
     *next,
     *node;
 
@@ -517,7 +517,7 @@
         int
           compare;
 
-        register NodeInfo
+        NodeInfo
           *left,
           *right;
 
@@ -606,7 +606,7 @@
   int
     compare;
 
-  register NodeInfo
+  NodeInfo
     *left,
     *right;
 
@@ -684,7 +684,7 @@
   NodeInfo
     *node;
 
-  register NodeInfo
+  NodeInfo
     *active,
     *pend;
 
@@ -768,7 +768,7 @@
 */
 MagickExport const void *GetNextKeyInSplayTree(SplayTreeInfo *splay_tree)
 {
-  register NodeInfo
+  NodeInfo
     *node;
 
   void
@@ -822,7 +822,7 @@
 */
 MagickExport const void *GetNextValueInSplayTree(SplayTreeInfo *splay_tree)
 {
-  register NodeInfo
+  NodeInfo
     *node;
 
   void
@@ -1030,10 +1030,10 @@
   NodeInfo
     **nodes;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register NodeInfo
+  NodeInfo
     *node;
 
   TransitionType
@@ -1190,7 +1190,7 @@
 MagickExport void *RemoveNodeByValueFromSplayTree(SplayTreeInfo *splay_tree,
   const void *value)
 {
-  register NodeInfo
+  NodeInfo
     *next,
     *node;
 
@@ -1222,7 +1222,7 @@
         int
           compare;
 
-        register NodeInfo
+        NodeInfo
           *left,
           *right;
 
@@ -1302,7 +1302,7 @@
   int
     compare;
 
-  register NodeInfo
+  NodeInfo
     *left,
     *right;
 
@@ -1382,7 +1382,7 @@
   NodeInfo
     *node;
 
-  register NodeInfo
+  NodeInfo
     *active,
     *pend;
 
@@ -1521,7 +1521,7 @@
   NodeInfo
     **next;
 
-  register NodeInfo
+  NodeInfo
     *n,
     *p;
 
diff --git a/MagickCore/splay-tree.h b/MagickCore/splay-tree.h
index 9df4d04..ccb5438 100644
--- a/MagickCore/splay-tree.h
+++ b/MagickCore/splay-tree.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/static.c b/MagickCore/static.c
index 7f0fe25..3f43ada 100644
--- a/MagickCore/static.c
+++ b/MagickCore/static.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -223,7 +223,7 @@
   PolicyRights
     rights;
 
-  register const CoderInfo
+  const CoderInfo
     *p;
 
   size_t
diff --git a/MagickCore/static.h b/MagickCore/static.h
index 8e2006f..6a3dd02 100644
--- a/MagickCore/static.h
+++ b/MagickCore/static.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -69,7 +69,7 @@
   RegisterEPSIImage(void),
   RegisterEPTImage(void),
   RegisterEXRImage(void),
-  RegisterFarbfeldImage(void),
+  RegisterFARBFELDImage(void),
   RegisterFAXImage(void),
   RegisterFITSImage(void),
   RegisterFL32Image(void),
@@ -183,6 +183,7 @@
   RegisterVDAImage(void),
   RegisterVICARImage(void),
   RegisterVIDImage(void),
+  RegisterVIDEOImage(void),
   RegisterVIFFImage(void),
   RegisterVIPSImage(void),
   RegisterVSTImage(void),
@@ -199,6 +200,7 @@
   RegisterXTRNImage(void),
   RegisterXVImage(void),
   RegisterXWDImage(void),
+  RegisterYAMLImage(void),
   RegisterYCBCRImage(void),
   RegisterYUVImage(void);
 
@@ -239,7 +241,7 @@
   UnregisterEPSIImage(void),
   UnregisterEPTImage(void),
   UnregisterEXRImage(void),
-  UnregisterFarbfeldImage(void),
+  UnregisterFARBFELDImage(void),
   UnregisterFAXImage(void),
   UnregisterFITSImage(void),
   UnregisterFL32Image(void),
@@ -354,6 +356,7 @@
   UnregisterVDAImage(void),
   UnregisterVICARImage(void),
   UnregisterVIDImage(void),
+  UnregisterVIDEOImage(void),
   UnregisterVIFFImage(void),
   UnregisterVIPSImage(void),
   UnregisterVSTImage(void),
@@ -370,6 +373,7 @@
   UnregisterXTRNImage(void),
   UnregisterXVImage(void),
   UnregisterXWDImage(void),
+  UnregisterYAMLImage(void),
   UnregisterYCBCRImage(void),
   UnregisterYUVImage(void);
 
diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c
index 2e01690..ee8d5b4 100644
--- a/MagickCore/statistic.c
+++ b/MagickCore/statistic.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -140,7 +140,7 @@
 static PixelChannels **DestroyPixelThreadSet(const Image *images,
   PixelChannels **pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -164,7 +164,7 @@
   PixelChannels
     **pixels;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -183,7 +183,7 @@
     columns=MagickMax(next->columns,columns);
   for (i=0; i < (ssize_t) rows; i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     pixels[i]=(PixelChannels *) AcquireQuantumMemory(columns,sizeof(**pixels));
@@ -191,7 +191,7 @@
       return(DestroyPixelThreadSet(images,pixels));
     for (j=0; j < (ssize_t) columns; j++)
     {
-      register ssize_t
+      ssize_t
         k;
 
       for (k=0; k < MaxPixelChannels; k++)
@@ -221,7 +221,7 @@
   double
     distance;
 
-  register ssize_t
+  ssize_t
     i;
 
   color_1=(const PixelChannels *) x;
@@ -242,7 +242,7 @@
   double
     result;
 
-  register ssize_t
+  ssize_t
     i;
 
   result=0.0;
@@ -574,13 +574,13 @@
         const Quantum
           **p;
 
-        register PixelChannels
+        PixelChannels
           *evaluate_pixel;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -614,7 +614,7 @@
         evaluate_pixel=evaluate_pixels[id];
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           next=images;
@@ -688,14 +688,14 @@
         const Quantum
           **p;
 
-        register ssize_t
+        ssize_t
           i,
           x;
 
-        register PixelChannels
+        PixelChannels
           *evaluate_pixel;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         ssize_t
@@ -735,7 +735,7 @@
         {
           for (x=0; x < (ssize_t) image->columns; x++)
           {
-            register ssize_t
+            ssize_t
               i;
 
             for (i=0; i < (ssize_t) GetPixelChannels(next); i++)
@@ -770,7 +770,7 @@
             {
               for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
               {
-                register ssize_t
+                ssize_t
                   j;
 
                 for (j=0; j < (ssize_t) (number_images-1); j++)
@@ -877,10 +877,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -896,7 +896,7 @@
       double
         result;
 
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -978,7 +978,7 @@
   double
     result;
 
-  register ssize_t
+  ssize_t
     i;
 
   (void) exception;
@@ -1109,10 +1109,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1125,7 +1125,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1432,7 +1432,7 @@
 
 static size_t GetImageChannels(const Image *image)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1508,10 +1508,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -1522,7 +1522,7 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1553,10 +1553,10 @@
   }
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -1567,7 +1567,7 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1775,6 +1775,7 @@
 
   char
     *colorspaces,
+    *p,
     *q;
 
   const char
@@ -1783,10 +1784,7 @@
   MagickBooleanType
     status;
 
-  register char
-    *p;
-
-  register ssize_t
+  ssize_t
     i;
 
   perceptual_hash=(ChannelPerceptualHash *) AcquireQuantumMemory(
@@ -1910,10 +1908,10 @@
     MagickBooleanType
       row_initialize;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1927,7 +1925,7 @@
     row_initialize=MagickTrue;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2015,7 +2013,7 @@
 {
 #define SwapPixels(alpha,beta) \
 { \
-  register Quantum gamma=(alpha); \
+  Quantum gamma=(alpha); \
   (alpha)=(beta);(beta)=gamma; \
 }
 
@@ -2085,7 +2083,7 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2124,10 +2122,10 @@
     sizeof(*histogram));
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -2138,7 +2136,7 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if (GetPixelReadMask(image,p) <= (QuantumRange/2))
@@ -2218,7 +2216,7 @@
     double
       number_bins;
 
-    register ssize_t
+    ssize_t
       j;
 
     /*
@@ -2290,10 +2288,10 @@
           continue;
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2447,14 +2445,14 @@
     const int
       id = GetOpenMPThreadId();
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
-    register PixelChannels
+    PixelChannels
       *polynomial_pixel;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     ssize_t
@@ -2476,7 +2474,7 @@
     next=images;
     for (j=0; j < (ssize_t) number_images; j++)
     {
-      register const Quantum
+      const Quantum
         *p;
 
       if (j >= (ssize_t) number_terms)
@@ -2490,7 +2488,7 @@
         }
       for (x=0; x < (ssize_t) image->columns; x++)
       {
-        register ssize_t
+        ssize_t
           i;
 
         for (i=0; i < (ssize_t) GetPixelChannels(next); i++)
@@ -2519,7 +2517,7 @@
     }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2634,7 +2632,7 @@
 
 static PixelList **DestroyPixelListThreadSet(PixelList **pixel_list)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(pixel_list != (PixelList **) NULL);
@@ -2671,7 +2669,7 @@
   PixelList
     **pixel_list;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2694,10 +2692,10 @@
 
 static void AddNodePixelList(PixelList *pixel_list,const size_t color)
 {
-  register SkipList
+  SkipList
     *p;
 
-  register ssize_t
+  ssize_t
     level;
 
   size_t
@@ -2753,7 +2751,7 @@
 
 static inline void GetMedianPixelList(PixelList *pixel_list,Quantum *pixel)
 {
-  register SkipList
+  SkipList
     *p;
 
   size_t
@@ -2778,7 +2776,7 @@
 
 static inline void GetModePixelList(PixelList *pixel_list,Quantum *pixel)
 {
-  register SkipList
+  SkipList
     *p;
 
   size_t
@@ -2812,7 +2810,7 @@
 
 static inline void GetNonpeakPixelList(PixelList *pixel_list,Quantum *pixel)
 {
-  register SkipList
+  SkipList
     *p;
 
   size_t
@@ -2868,10 +2866,10 @@
   int
     level;
 
-  register SkipNode
+  SkipNode
     *root;
 
-  register SkipList
+  SkipList
     *p;
 
   /*
@@ -2953,13 +2951,13 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2975,7 +2973,7 @@
       }
     for (x=0; x < (ssize_t) statistic_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2990,10 +2988,10 @@
         Quantum
           pixel;
 
-        register const Quantum
+        const Quantum
           *magick_restrict pixels;
 
-        register ssize_t
+        ssize_t
           u;
 
         ssize_t
diff --git a/MagickCore/statistic.h b/MagickCore/statistic.h
index 864b2ac..e8beffd 100644
--- a/MagickCore/statistic.h
+++ b/MagickCore/statistic.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/stream-private.h b/MagickCore/stream-private.h
index 208d5d8..f890a2c 100644
--- a/MagickCore/stream-private.h
+++ b/MagickCore/stream-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/stream.c b/MagickCore/stream.c
index f7fd200..28fa0f2 100644
--- a/MagickCore/stream.c
+++ b/MagickCore/stream.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -448,10 +448,10 @@
 static MagickBooleanType GetOneAuthenticPixelFromStream(Image *image,
   const ssize_t x,const ssize_t y,Quantum *pixel,ExceptionInfo *exception)
 {
-  register Quantum
+  Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
@@ -515,7 +515,7 @@
   const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image != (Image *) NULL);
@@ -881,6 +881,37 @@
 %      pixels.
 %
 */
+
+static inline MagickBooleanType ValidatePixelCacheMorphology(
+  const Image *magick_restrict image)
+{
+  const CacheInfo
+    *magick_restrict cache_info;
+
+  const PixelChannelMap
+    *magick_restrict p,
+    *magick_restrict q;
+
+  /*
+    Does the image match the pixel cache morphology?
+  */
+  cache_info=(CacheInfo *) image->cache;
+  p=image->channel_map;
+  q=cache_info->channel_map;
+  if ((image->storage_class != cache_info->storage_class) ||
+      (image->colorspace != cache_info->colorspace) ||
+      (image->alpha_trait != cache_info->alpha_trait) ||
+      (image->channels != cache_info->channels) ||
+      (image->columns != cache_info->columns) ||
+      (image->rows != cache_info->rows) ||
+      (image->number_channels != cache_info->number_channels) ||
+      (memcmp(p,q,image->number_channels*sizeof(*p)) != 0) ||
+      (image->metacontent_extent != cache_info->metacontent_extent) ||
+      (cache_info->nexus_info == (NexusInfo **) NULL))
+    return(MagickFalse);
+  return(MagickTrue);
+}
+
 static Quantum *QueueAuthenticPixelsStream(Image *image,const ssize_t x,
   const ssize_t y,const size_t columns,const size_t rows,
   ExceptionInfo *exception)
@@ -922,16 +953,20 @@
     }
   cache_info=(CacheInfo *) image->cache;
   assert(cache_info->signature == MagickCoreSignature);
-  if ((image->storage_class != GetPixelCacheStorageClass(image->cache)) ||
-      (image->colorspace != GetPixelCacheColorspace(image->cache)))
+  if (ValidatePixelCacheMorphology(image) == MagickFalse)
     {
-      if (GetPixelCacheStorageClass(image->cache) == UndefinedClass)
+      if (cache_info->storage_class == UndefinedClass)
         (void) stream_handler(image,(const void *) NULL,(size_t)
           cache_info->columns);
       cache_info->storage_class=image->storage_class;
       cache_info->colorspace=image->colorspace;
+      cache_info->alpha_trait=image->alpha_trait;
+      cache_info->channels=image->channels;
       cache_info->columns=image->columns;
       cache_info->rows=image->rows;
+      cache_info->number_channels=image->number_channels;
+      InitializePixelChannelMap(image);
+      ResetPixelCacheChannels(image);
       image->cache=cache_info;
     }
   /*
@@ -1370,10 +1405,10 @@
   QuantumType
     *quantum_map;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1499,7 +1534,7 @@
   {
     case CharPixel:
     {
-      register unsigned char
+      unsigned char
         *q;
 
       q=(unsigned char *) stream_info->pixels;
@@ -1583,7 +1618,7 @@
             *q++=ScaleQuantumToChar(GetPixelRed(image,p));
             *q++=ScaleQuantumToChar(GetPixelGreen(image,p));
             *q++=ScaleQuantumToChar(GetPixelBlue(image,p));
-            *q++=ScaleQuantumToChar((Quantum) (GetPixelAlpha(image,p)));
+            *q++=ScaleQuantumToChar(GetPixelAlpha(image,p));
             p+=GetPixelChannels(image);
           }
           break;
@@ -1633,12 +1668,12 @@
             }
             case AlphaQuantum:
             {
-              *q=ScaleQuantumToChar((Quantum) (GetPixelAlpha(image,p)));
+              *q=ScaleQuantumToChar(GetPixelAlpha(image,p));
               break;
             }
             case OpacityQuantum:
             {
-              *q=ScaleQuantumToChar(GetPixelAlpha(image,p));
+              *q=ScaleQuantumToChar(GetPixelOpacity(image,p));
               break;
             }
             case BlackQuantum:
@@ -1663,7 +1698,7 @@
     }
     case DoublePixel:
     {
-      register double
+      double
         *q;
 
       q=(double *) stream_info->pixels;
@@ -1827,7 +1862,7 @@
             }
             case OpacityQuantum:
             {
-              *q=(double) ((QuantumScale*GetPixelAlpha(image,p))*
+              *q=(double) ((QuantumScale*GetPixelOpacity(image,p))*
                 quantum_info->scale+quantum_info->minimum);
               break;
             }
@@ -1855,7 +1890,7 @@
     }
     case FloatPixel:
     {
-      register float
+      float
         *q;
 
       q=(float *) stream_info->pixels;
@@ -1889,7 +1924,7 @@
               quantum_info->scale+quantum_info->minimum);
             *q++=(float) ((QuantumScale*GetPixelRed(image,p))*
               quantum_info->scale+quantum_info->minimum);
-            *q++=(float) ((QuantumScale*(Quantum) (GetPixelAlpha(image,p)))*
+            *q++=(float) ((QuantumScale*GetPixelAlpha(image,p))*
               quantum_info->scale+quantum_info->minimum);
             p+=GetPixelChannels(image);
           }
@@ -2019,7 +2054,7 @@
             }
             case OpacityQuantum:
             {
-              *q=(float) ((QuantumScale*GetPixelAlpha(image,p))*
+              *q=(float) ((QuantumScale*GetPixelOpacity(image,p))*
                 quantum_info->scale+quantum_info->minimum);
               break;
             }
@@ -2047,7 +2082,7 @@
     }
     case LongPixel:
     {
-      register unsigned int
+      unsigned int
         *q;
 
       q=(unsigned int *) stream_info->pixels;
@@ -2075,7 +2110,7 @@
             *q++=ScaleQuantumToLong(GetPixelBlue(image,p));
             *q++=ScaleQuantumToLong(GetPixelGreen(image,p));
             *q++=ScaleQuantumToLong(GetPixelRed(image,p));
-            *q++=ScaleQuantumToLong((Quantum) (GetPixelAlpha(image,p)));
+            *q++=ScaleQuantumToLong(GetPixelAlpha(image,p));
             p+=GetPixelChannels(image);
           }
           break;
@@ -2131,7 +2166,7 @@
             *q++=ScaleQuantumToLong(GetPixelRed(image,p));
             *q++=ScaleQuantumToLong(GetPixelGreen(image,p));
             *q++=ScaleQuantumToLong(GetPixelBlue(image,p));
-            *q++=ScaleQuantumToLong((Quantum) (GetPixelAlpha(image,p)));
+            *q++=ScaleQuantumToLong(GetPixelAlpha(image,p));
             p+=GetPixelChannels(image);
           }
           break;
@@ -2181,12 +2216,12 @@
             }
             case AlphaQuantum:
             {
-              *q=ScaleQuantumToLong((Quantum) (GetPixelAlpha(image,p)));
+              *q=ScaleQuantumToLong(GetPixelAlpha(image,p));
               break;
             }
             case OpacityQuantum:
             {
-              *q=ScaleQuantumToLong(GetPixelAlpha(image,p));
+              *q=ScaleQuantumToLong(GetPixelOpacity(image,p));
               break;
             }
             case BlackQuantum:
@@ -2211,7 +2246,7 @@
     }
     case LongLongPixel:
     {
-      register MagickSizeType
+      MagickSizeType
         *q;
 
       q=(MagickSizeType *) stream_info->pixels;
@@ -2351,7 +2386,7 @@
             }
             case OpacityQuantum:
             {
-              *q=ScaleQuantumToLongLong(GetPixelAlpha(image,p));
+              *q=ScaleQuantumToLongLong(GetPixelOpacity(image,p));
               break;
             }
             case BlackQuantum:
@@ -2377,7 +2412,7 @@
     }
     case QuantumPixel:
     {
-      register Quantum
+      Quantum
         *q;
 
       q=(Quantum *) stream_info->pixels;
@@ -2420,7 +2455,7 @@
             *q++=GetPixelBlue(image,p);
             *q++=GetPixelGreen(image,p);
             *q++=GetPixelRed(image,p);
-            *q++=0;
+            *q++=(Quantum) 0;
             p+=GetPixelChannels(image);
           }
           break;
@@ -2476,7 +2511,7 @@
             *q++=GetPixelRed(image,p);
             *q++=GetPixelGreen(image,p);
             *q++=GetPixelBlue(image,p);
-            *q++=0U;
+            *q++=(Quantum) 0;
             p+=GetPixelChannels(image);
           }
           break;
@@ -2511,12 +2546,12 @@
             }
             case AlphaQuantum:
             {
-              *q=(Quantum) (GetPixelAlpha(image,p));
+              *q=GetPixelAlpha(image,p);
               break;
             }
             case OpacityQuantum:
             {
-              *q=GetPixelAlpha(image,p);
+              *q=GetPixelOpacity(image,p);
               break;
             }
             case BlackQuantum:
@@ -2531,7 +2566,7 @@
               break;
             }
             default:
-              *q=0;
+              *q=(Quantum) 0;
           }
           q++;
         }
@@ -2541,7 +2576,7 @@
     }
     case ShortPixel:
     {
-      register unsigned short
+      unsigned short
         *q;
 
       q=(unsigned short *) stream_info->pixels;
@@ -2569,7 +2604,7 @@
             *q++=ScaleQuantumToShort(GetPixelBlue(image,p));
             *q++=ScaleQuantumToShort(GetPixelGreen(image,p));
             *q++=ScaleQuantumToShort(GetPixelRed(image,p));
-            *q++=ScaleQuantumToShort((Quantum) (GetPixelAlpha(image,p)));
+            *q++=ScaleQuantumToShort(GetPixelAlpha(image,p));
             p+=GetPixelChannels(image);
           }
           break;
@@ -2626,7 +2661,7 @@
             *q++=ScaleQuantumToShort(GetPixelRed(image,p));
             *q++=ScaleQuantumToShort(GetPixelGreen(image,p));
             *q++=ScaleQuantumToShort(GetPixelBlue(image,p));
-            *q++=ScaleQuantumToShort((Quantum) (GetPixelAlpha(image,p)));
+            *q++=ScaleQuantumToShort(GetPixelAlpha(image,p));
             p+=GetPixelChannels(image);
           }
           break;
@@ -2681,7 +2716,7 @@
             }
             case OpacityQuantum:
             {
-              *q=ScaleQuantumToShort(GetPixelAlpha(image,p));
+              *q=ScaleQuantumToShort(GetPixelOpacity(image,p));
               break;
             }
             case BlackQuantum:
diff --git a/MagickCore/stream.h b/MagickCore/stream.h
index 2a0eed7..63cdcd2 100644
--- a/MagickCore/stream.h
+++ b/MagickCore/stream.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/string-private.h b/MagickCore/string-private.h
index b624bb5..93effdc 100644
--- a/MagickCore/string-private.h
+++ b/MagickCore/string-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -57,7 +57,7 @@
       length_needle,
       length_haystack;
 
-    register size_t
+    size_t
       i;
 
     if (!haystack || !needle)
@@ -66,7 +66,7 @@
     length_haystack=strlen(haystack)-length_needle+1;
     for (i=0; i < length_haystack; i++)
     {
-      register size_t
+      size_t
         j;
 
       for (j=0; j < length_needle; j++)
diff --git a/MagickCore/string.c b/MagickCore/string.c
index 70081f6..9572e33 100644
--- a/MagickCore/string.c
+++ b/MagickCore/string.c
@@ -17,7 +17,7 @@
 %                               August 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the license.  You may  %
@@ -392,13 +392,13 @@
 MagickExport size_t ConcatenateMagickString(char *magick_restrict destination,
   const char *magick_restrict source,const size_t length)
 {
-  register char
+  char
     *magick_restrict q;
 
-  register const char
+  const char
     *magick_restrict p;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -603,7 +603,7 @@
     }
   else
     {
-      register size_t
+      size_t
         i;
 
       ssize_t
@@ -613,7 +613,7 @@
       for (i=0; i < length; i+=count)
       {
         count=read(file,string+i,(size_t) MagickMin(length-i,(size_t)
-          SSIZE_MAX));
+          LONG_MAX));
         if (count <= 0)
           {
             count=0;
@@ -719,13 +719,13 @@
 MagickExport size_t CopyMagickString(char *magick_restrict destination,
   const char *magick_restrict source,const size_t length)
 {
-  register char
+  char
     *magick_restrict q;
 
-  register const char
+  const char
     *magick_restrict p;
 
-  register size_t
+  size_t
     n;
 
   p=source;
@@ -840,7 +840,7 @@
 */
 MagickExport char **DestroyStringList(char **list)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(list != (char **) NULL);
@@ -884,10 +884,10 @@
   char
     *destination;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -1058,7 +1058,7 @@
     bytes,
     extent;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1461,10 +1461,10 @@
 MagickExport void PrintStringInfo(FILE *file,const char *id,
   const StringInfo *string_info)
 {
-  register const char
+  const char
     *p;
 
-  register size_t
+  size_t
     i,
     j;
 
@@ -1560,7 +1560,7 @@
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  SanitizeString() returns n new string removes all characters except
+%  SanitizeString() returns a new string with all characters removed except
 %  letters, digits and !#$%&'*+-=?^_`{|}~@.[].
 %
 %  Free the sanitized string with DestroyString().
@@ -1582,7 +1582,7 @@
   const char
     *q;
 
-  register char
+  char
     *p;
 
   static char
@@ -1888,13 +1888,13 @@
   char
     *string;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1977,11 +1977,11 @@
   char
     **argv;
 
-  register const char
+  const char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   *argc=0;
@@ -2099,7 +2099,7 @@
   double
     *array;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -2171,7 +2171,7 @@
 %  delimiter character found, or NULL.  A pointer to the start of the
 %  string is returned, representing the token before the delimiter.
 %
-%  In may ways this is equivent to the strtok() C library function, but with
+%  StringToken() is similar to the strtok() C library method, but with
 %  multiple delimiter characters rather than a delimiter string.
 %
 %  The format of the StringToken method is:
@@ -2191,13 +2191,13 @@
   char
     *q;
 
-  register char
+  char
     *p;
 
-  register const char
+  const char
     *r;
 
-  register int
+  int
     c,
     d;
 
@@ -2285,10 +2285,10 @@
   char
     **textlist;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2306,7 +2306,7 @@
       break;
   if (*p == '\0')
     {
-      register const char
+      const char
         *q;
 
       /*
@@ -2342,10 +2342,10 @@
       char
         hex_string[MagickPathExtent];
 
-      register char
+      char
         *q;
 
-      register ssize_t
+      ssize_t
         j;
 
       /*
@@ -2465,7 +2465,7 @@
 */
 MagickExport void StripString(char *message)
 {
-  register char
+  char
     *p,
     *q;
 
@@ -2531,7 +2531,7 @@
   MagickBooleanType
     status;
 
-  register char
+  char
     *p;
 
   size_t
diff --git a/MagickCore/string_.h b/MagickCore/string_.h
index 776518e..2d0cab6 100644
--- a/MagickCore/string_.h
+++ b/MagickCore/string_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/studio.h b/MagickCore/studio.h
index 8898d8d..a0e8a9a 100644
--- a/MagickCore/studio.h
+++ b/MagickCore/studio.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/thread-private.h b/MagickCore/thread-private.h
index 7317f25..8153cf0 100644
--- a/MagickCore/thread-private.h
+++ b/MagickCore/thread-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/thread.c b/MagickCore/thread.c
index fd3b291..f648053 100644
--- a/MagickCore/thread.c
+++ b/MagickCore/thread.c
@@ -16,7 +16,7 @@
 %                               March  2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -147,7 +147,7 @@
     MagickThreadValue
       *keys;
 
-    register ssize_t
+    ssize_t
       i;
 
     keys=(MagickThreadValue *) key;
diff --git a/MagickCore/thread_.h b/MagickCore/thread_.h
index 7bac0eb..08bad9e 100644
--- a/MagickCore/thread_.h
+++ b/MagickCore/thread_.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 29ba04c..cdd730d 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -17,7 +17,7 @@
 %                                 October 1996                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -243,14 +243,14 @@
       channel_bias[MaxPixelChannels],
       channel_sum[MaxPixelChannels];
 
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict pixels;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -404,7 +404,7 @@
     maximum_entropy,
     *white_entropy;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -501,7 +501,7 @@
     *sigma,
     threshold;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -585,7 +585,7 @@
     y1,
     y2;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -677,7 +677,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -700,10 +700,10 @@
   image_view=AcquireVirtualCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
@@ -841,10 +841,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -860,7 +860,7 @@
       double
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       pixel=GetPixelIntensity(image,q);
@@ -1002,10 +1002,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1021,7 +1021,7 @@
       double
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       pixel=GetPixelIntensity(image,q);
@@ -1108,10 +1108,10 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
-      register PixelInfo
+      PixelInfo
         *magick_restrict q;
 
       q=image->colormap;
@@ -1137,10 +1137,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1153,7 +1153,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1325,10 +1325,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1344,7 +1344,7 @@
       MagickBooleanType
         foreground = MagickTrue;
 
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1519,7 +1519,7 @@
   double
     value;
 
-  register ssize_t
+  ssize_t
     i;
 
   ThresholdMap
@@ -1896,7 +1896,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1964,10 +1964,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1980,7 +1980,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -2098,10 +2098,10 @@
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
-      register PixelInfo
+      PixelInfo
         *magick_restrict q;
 
       q=image->colormap;
@@ -2131,10 +2131,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2147,7 +2147,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2265,10 +2265,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2281,7 +2281,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2399,10 +2399,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2418,7 +2418,7 @@
       double
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       pixel=GetPixelIntensity(image,q);
@@ -2577,10 +2577,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2596,7 +2596,7 @@
       double
         pixel;
 
-      register ssize_t
+      ssize_t
         i;
 
       pixel=GetPixelIntensity(image,q);
diff --git a/MagickCore/threshold.h b/MagickCore/threshold.h
index 1268888..f6a833c 100644
--- a/MagickCore/threshold.h
+++ b/MagickCore/threshold.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/timer-private.h b/MagickCore/timer-private.h
index 52abea6..eae6d64 100644
--- a/MagickCore/timer-private.h
+++ b/MagickCore/timer-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/timer.c b/MagickCore/timer.c
index 6136adf..f1165ef 100644
--- a/MagickCore/timer.c
+++ b/MagickCore/timer.c
@@ -17,7 +17,7 @@
 %                              January 1993                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickCore/timer.h b/MagickCore/timer.h
index df71739..5c4f514 100644
--- a/MagickCore/timer.h
+++ b/MagickCore/timer.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/token-private.h b/MagickCore/token-private.h
index bb5ec2d..33c233e 100644
--- a/MagickCore/token-private.h
+++ b/MagickCore/token-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -57,10 +57,10 @@
   int
     c;
 
-  register const unsigned char
+  const unsigned char
     *magick_restrict p;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
@@ -99,10 +99,10 @@
   int
     code;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register int
+  int
     c,
     unicode;
 
diff --git a/MagickCore/token.c b/MagickCore/token.c
index 990652c..c119c8e 100644
--- a/MagickCore/token.c
+++ b/MagickCore/token.c
@@ -17,7 +17,7 @@
 %                              January 1993                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -178,13 +178,13 @@
   double
     value;
 
-  register char
+  char
     *magick_restrict q;
 
-  register const char
+  const char
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(start != (const char *) NULL);
@@ -202,7 +202,7 @@
     case '`':
     case '{':
     {
-      register char
+      char
         escape;
 
       switch (*p)
@@ -360,7 +360,7 @@
     done,
     match;
 
-  register const char
+  const char
     *magick_restrict p;
 
   /*
@@ -511,7 +511,7 @@
         char
           *target;
 
-        register char
+        char
           *p;
 
         target=AcquireString(pattern);
@@ -602,7 +602,7 @@
   MagickBooleanType
     status = MagickFalse;
 
-  register const char
+  const char
     *p;
 
   if (IsPathAccessible(path) != MagickFalse)
@@ -797,7 +797,7 @@
 
 static ssize_t sindex(int c,const char *string)
 {
-  register const char
+  const char
     *p;
 
   for (p=string; *p != '\0'; p++)
@@ -809,7 +809,7 @@
 static void StoreToken(TokenInfo *token_info,char *string,
   size_t max_token_length,int c)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if ((token_info->offset < 0) ||
@@ -844,7 +844,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   *breaker='\0';
diff --git a/MagickCore/token.h b/MagickCore/token.h
index bd04b79..36d205c 100644
--- a/MagickCore/token.h
+++ b/MagickCore/token.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/transform-private.h b/MagickCore/transform-private.h
index 21610f8..dd48dcf 100644
--- a/MagickCore/transform-private.h
+++ b/MagickCore/transform-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/transform.c b/MagickCore/transform.c
index dc993c9..88990eb 100644
--- a/MagickCore/transform.c
+++ b/MagickCore/transform.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -258,13 +258,13 @@
 #endif
   for (y=0; y < (ssize_t) extent.y; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -281,7 +281,7 @@
     {
       if ((x < extent.x) || (x >= (ssize_t) (extent.x+extent.width)))
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -323,13 +323,13 @@
 #endif
   for (y=0; y < (ssize_t) (image->rows-(extent.y+extent.height)); y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -347,7 +347,7 @@
     {
       if ((x < extent.x) || (x >= (ssize_t) (extent.x+extent.width)))
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -424,7 +424,7 @@
     *cmyk_image,
     *cmyk_images;
 
-  register ssize_t
+  ssize_t
     j;
 
   ssize_t
@@ -442,7 +442,7 @@
   cmyk_images=NewImageList();
   for (j=0; j < (ssize_t) GetImageListLength(images); j+=4)
   {
-    register ssize_t
+    ssize_t
       i;
 
     assert(images != (Image *) NULL);
@@ -459,13 +459,13 @@
       cmyk_view=AcquireAuthenticCacheView(cmyk_image,exception);
       for (y=0; y < (ssize_t) images->rows; y++)
       {
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         p=GetCacheViewVirtualPixels(image_view,0,y,images->columns,1,exception);
@@ -677,13 +677,13 @@
 #endif
   for (y=0; y < (ssize_t) crop_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -699,7 +699,7 @@
       }
     for (x=0; x < (ssize_t) crop_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -769,10 +769,10 @@
 
 static inline double ConstrainPixelOffset(double x)
 {
-  if (x < (double) -(SSIZE_MAX-512))
-    return((double) -(SSIZE_MAX-512));
-  if (x > (double) (SSIZE_MAX-512))
-    return((double) (SSIZE_MAX-512));
+  if (x < (double) -(LONG_MAX-512))
+    return((double) -(LONG_MAX-512));
+  if (x > (double) (LONG_MAX-512))
+    return((double) (LONG_MAX-512));
   return(x);
 }
 
@@ -1033,13 +1033,13 @@
 #endif
   for (y=0; y < (ssize_t) excerpt_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1055,7 +1055,7 @@
       }
     for (x=0; x < (ssize_t) excerpt_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1232,13 +1232,13 @@
 #endif
   for (y=0; y < (ssize_t) flip_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -1253,7 +1253,7 @@
       }
     for (x=0; x < (ssize_t) flip_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1367,13 +1367,13 @@
 #endif
   for (y=0; y < (ssize_t) flop_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1389,7 +1389,7 @@
     q+=GetPixelChannels(flop_image)*flop_image->columns;
     for (x=0; x < (ssize_t) flop_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       q-=GetPixelChannels(flop_image);
@@ -1489,13 +1489,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     /*
@@ -1512,7 +1512,7 @@
       }
     for (x=0; x < (ssize_t) columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(source); i++)
@@ -1811,13 +1811,13 @@
 #endif
   for (y=0; y < (ssize_t) splice_geometry.y; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1833,7 +1833,7 @@
       }
     for (x=0; x < columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1857,7 +1857,7 @@
       q+=GetPixelChannels(splice_image);
     for ( ; x < (ssize_t) splice_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1901,13 +1901,13 @@
   for (y=(ssize_t) (splice_geometry.y+splice_geometry.height);
        y < (ssize_t) splice_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1925,7 +1925,7 @@
       }
     for (x=0; x < columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -1949,7 +1949,7 @@
       q+=GetPixelChannels(splice_image);
     for ( ; x < (ssize_t) splice_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2164,13 +2164,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2186,7 +2186,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2305,13 +2305,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2327,7 +2327,7 @@
     q+=GetPixelChannels(transverse_image)*image->columns;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       q-=GetPixelChannels(transverse_image);
diff --git a/MagickCore/transform.h b/MagickCore/transform.h
index 9afbd46..f377e77 100644
--- a/MagickCore/transform.h
+++ b/MagickCore/transform.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/type-private.h b/MagickCore/type-private.h
index 5039b34..842c2e2 100644
--- a/MagickCore/type-private.h
+++ b/MagickCore/type-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/type.c b/MagickCore/type.c
index 50f830b..c474737 100644
--- a/MagickCore/type.c
+++ b/MagickCore/type.c
@@ -17,7 +17,7 @@
 %                                 May 2001                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -162,7 +162,7 @@
 
 static void *DestroyTypeNode(void *type_info)
 {
-  register TypeInfo
+  TypeInfo
     *p;
 
   p=(TypeInfo *) type_info;
@@ -333,10 +333,10 @@
   const TypeInfo
     *type_info;
 
-  register const TypeInfo
+  const TypeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -555,10 +555,10 @@
   const TypeInfo
     **fonts;
 
-  register const TypeInfo
+  const TypeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -629,7 +629,7 @@
 
 static int TypeCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -648,10 +648,10 @@
   char
     **fonts;
 
-  register const TypeInfo
+  const TypeInfo
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -753,7 +753,7 @@
     width,
     weight;
 
-  register ssize_t
+  ssize_t
     i;
 
   TypeInfo
@@ -947,7 +947,7 @@
   const TypeInfo
     **type_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/type.h b/MagickCore/type.h
index 047dece..976b71b 100644
--- a/MagickCore/type.h
+++ b/MagickCore/type.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/utility-private.h b/MagickCore/utility-private.h
index 33f66c0..e39d94f 100644
--- a/MagickCore/utility-private.h
+++ b/MagickCore/utility-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -68,7 +68,8 @@
     *wideChar;
 
   count=MultiByteToWideChar(CP_UTF8,0,utf8,-1,NULL,0);
-  if ((count > MAX_PATH) && (NTLongPathsEnabled() == MagickFalse))
+  if ((count > MAX_PATH) && (strncmp(utf8,"\\\\?\\",4) != 0) &&
+      (NTLongPathsEnabled() == MagickFalse))
     {
       char
         buffer[MagickPathExtent];
diff --git a/MagickCore/utility.c b/MagickCore/utility.c
index 01f8571..f274c4b 100644
--- a/MagickCore/utility.c
+++ b/MagickCore/utility.c
@@ -17,7 +17,7 @@
 %                              January 1993                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -348,11 +348,11 @@
   int
     state;
 
-  register const char
+  const char
     *p,
     *q;
 
-  register size_t
+  size_t
     i;
 
   unsigned char
@@ -504,10 +504,10 @@
   char
     *encode;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -583,7 +583,7 @@
 */
 MagickPrivate void ChopPathComponents(char *path,const size_t components)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < (ssize_t) components; i++)
@@ -652,7 +652,7 @@
 #endif
         username[MagickPathExtent];
 
-      register char
+      char
         *p;
 
       struct passwd
@@ -751,7 +751,7 @@
     home_directory[MagickPathExtent],
     **vector;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1226,7 +1226,7 @@
   char
     *q;
 
-  register char
+  char
     *p;
 
   size_t
@@ -1417,11 +1417,11 @@
   char
     **components;
 
-  register const char
+  const char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (path == (char *) NULL)
@@ -1578,7 +1578,7 @@
 
 static int FileCompare(const void *x,const void *y)
 {
-  register const char
+  const char
     **p,
     **q;
 
@@ -1661,7 +1661,7 @@
           }
 #if defined(vms)
         {
-          register char
+          char
             *p;
 
           p=strchr(entry->d_name,';');
@@ -1839,7 +1839,7 @@
   MagickSizeType
     length;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1892,7 +1892,7 @@
     RandomInfo
       *random_info;
 
-    register MagickOffsetType
+    MagickOffsetType
       j;
 
     ssize_t
diff --git a/MagickCore/utility.h b/MagickCore/utility.h
index 27f2c73..ecf85d9 100644
--- a/MagickCore/utility.h
+++ b/MagickCore/utility.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/version-private.h b/MagickCore/version-private.h
index 1e0a96f..e1e6cbd 100644
--- a/MagickCore/version-private.h
+++ b/MagickCore/version-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/version.c b/MagickCore/version.c
index 4891797..0b86bfe 100644
--- a/MagickCore/version.c
+++ b/MagickCore/version.c
@@ -17,7 +17,7 @@
 %                               September 2002                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -498,7 +498,7 @@
 
 static unsigned int CRC32(const unsigned char *message,const size_t length)
 {
-  register ssize_t
+  ssize_t
     i;
 
   static MagickBooleanType
@@ -515,7 +515,7 @@
   */
   if (crc_initial == MagickFalse)
     {
-      register unsigned int
+      unsigned int
         j;
 
       unsigned int
@@ -523,7 +523,7 @@
 
       for (j=0; j < 256; j++)
       {
-        register ssize_t
+        ssize_t
           k;
 
         alpha=j;
@@ -541,7 +541,7 @@
 
 MagickExport unsigned int GetMagickSignature(const StringInfo *nonce)
 {
-  register unsigned char
+  unsigned char
     *p;
 
   StringInfo
diff --git a/MagickCore/version.h.in b/MagickCore/version.h.in
index dc45923..a9bc866 100644
--- a/MagickCore/version.h.in
+++ b/MagickCore/version.h.in
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.
diff --git a/MagickCore/vision.c b/MagickCore/vision.c
index 0282af4..9e6699e 100644
--- a/MagickCore/vision.c
+++ b/MagickCore/vision.c
@@ -17,7 +17,7 @@
 %                               September 2014                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -167,7 +167,7 @@
   RectangleInfo
     bounding_box;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -251,10 +251,10 @@
     dy=connectivity > 4 ? connect8[n][0] : connect4[n][0];
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -353,13 +353,13 @@
   component_view=AcquireAuthenticCacheView(component_image,exception);
   for (y=0; y < (ssize_t) component_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -477,7 +477,7 @@
   artifact=GetImageArtifact(image,"connected-components:keep-colors");
   if (artifact != (const char *) NULL)
     {
-      register const char
+      const char
         *p;
 
       /*
@@ -493,7 +493,7 @@
         PixelInfo
           pixel;
 
-        register const char
+        const char
           *q;
 
         for (q=p; *q != '\0'; q++)
@@ -572,7 +572,7 @@
   artifact=GetImageArtifact(image,"connected-components:remove-colors");
   if (artifact != (const char *) NULL)
     {
-      register const char
+      const char
         *p;
 
       /*
@@ -586,7 +586,7 @@
         PixelInfo
           pixel;
 
-        register const char
+        const char
           *q;
 
         for (q=p; *q != '\0'; q++)
@@ -665,10 +665,10 @@
         bounding_box=object[i].bounding_box;
         for (y=(-1); y < (ssize_t) bounding_box.height+1; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (status == MagickFalse)
@@ -685,7 +685,7 @@
             Quantum
               pixels[4];
 
-            register ssize_t
+            ssize_t
               v;
 
             size_t
@@ -698,7 +698,7 @@
             foreground=0;
             for (v=0; v < 2; v++)
             {
-              register ssize_t
+              ssize_t
                 u;
 
               for (u=0; u < 2; u++)
@@ -777,10 +777,10 @@
         bounding_box=object[i].bounding_box;
         for (y=(-1); y < (ssize_t) bounding_box.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (status == MagickFalse)
@@ -797,7 +797,7 @@
             Quantum
               pixels[4];
 
-            register ssize_t
+            ssize_t
               v;
 
             size_t
@@ -810,7 +810,7 @@
             foreground=0;
             for (v=0; v < 2; v++)
             {
-              register ssize_t
+              ssize_t
                 u;
 
               for (u=0; u < 2; u++)
@@ -903,10 +903,10 @@
         RectangleInfo
           bounding_box;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -1005,10 +1005,10 @@
         RectangleInfo
           bounding_box;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -1109,10 +1109,10 @@
         RectangleInfo
           bounding_box;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -1215,10 +1215,10 @@
         RectangleInfo
           bounding_box;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         ssize_t
@@ -1312,7 +1312,7 @@
   object_view=AcquireVirtualCacheView(component_image,exception);
   for (i=0; i < (ssize_t) component_image->colors; i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     size_t
@@ -1330,10 +1330,10 @@
     bounding_box=object[i].bounding_box;
     for (y=0; y < (ssize_t) bounding_box.height; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -1347,7 +1347,7 @@
         }
       for (x=0; x < (ssize_t) bounding_box.width; x++)
       {
-        register ssize_t
+        ssize_t
           n;
 
         if (status == MagickFalse)
@@ -1356,7 +1356,7 @@
         if (j == i)
           for (n=0; n < (ssize_t) (connectivity > 4 ? 4 : 2); n++)
           {
-            register const Quantum
+            const Quantum
               *p;
 
             /*
@@ -1390,10 +1390,10 @@
     object[i].area=0.0;
     for (y=0; y < (ssize_t) bounding_box.height; y++)
     {
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
@@ -1448,10 +1448,10 @@
       component_view=AcquireVirtualCacheView(component_image,exception);
       for (y=0; y < (ssize_t) component_image->rows; y++)
       {
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
         if (status == MagickFalse)
@@ -1495,7 +1495,7 @@
         CCObjectInfoCompare);
       if (objects == (CCObjectInfo **) NULL)
         {
-          register ssize_t
+          ssize_t
             j;
 
           artifact=GetImageArtifact(image,
diff --git a/MagickCore/vision.h b/MagickCore/vision.h
index cf660ec..0ab1e0e 100644
--- a/MagickCore/vision.h
+++ b/MagickCore/vision.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/visual-effects.c b/MagickCore/visual-effects.c
index e8b13aa..af8ce73 100644
--- a/MagickCore/visual-effects.c
+++ b/MagickCore/visual-effects.c
@@ -24,7 +24,7 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -206,13 +206,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -227,7 +227,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -363,13 +363,13 @@
     Quantum
       quantum;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -622,10 +622,10 @@
     MagickBooleanType
       sync;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -639,7 +639,7 @@
       }
     for (x=0; x < (ssize_t) colorize_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(colorize_image); i++)
@@ -747,7 +747,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -823,13 +823,13 @@
     PixelInfo
       pixel;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -845,7 +845,7 @@
     GetPixelInfo(image,&pixel);
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         v;
 
       size_t
@@ -1032,13 +1032,13 @@
     PointInfo
       delta;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -1055,7 +1055,7 @@
     delta.y=scale.y*(double) (y-center.y);
     for (x=0; x < (ssize_t) canvas_image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -1170,10 +1170,10 @@
   MagickOffsetType
     scene;
 
-  register const Image
+  const Image
     *next;
 
-  register ssize_t
+  ssize_t
     n;
 
   ssize_t
@@ -1268,13 +1268,13 @@
         MagickBooleanType
           sync;
 
-        register const Quantum
+        const Quantum
           *magick_restrict p;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *magick_restrict q;
 
         if (status == MagickFalse)
@@ -1290,7 +1290,7 @@
           }
         for (x=0; x < (ssize_t) morph_images->columns; x++)
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(morph_image); i++)
@@ -1408,14 +1408,14 @@
   MagickStatusType
     status;
 
-  register const Quantum
+  const Quantum
     *magick_restrict u,
     *magick_restrict v;
 
-  register Quantum
+  Quantum
     *magick_restrict q;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1437,8 +1437,8 @@
       */
       depth--;
       attenuate++;
-      x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
-      y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
+      x_mid=CastDoubleToLong(ceil((segment->x1+segment->x2)/2-0.5));
+      y_mid=CastDoubleToLong(ceil((segment->y1+segment->y2)/2-0.5));
       local_info=(*segment);
       local_info.x2=(double) x_mid;
       local_info.y2=(double) y_mid;
@@ -1461,8 +1461,8 @@
         &local_info,attenuate,depth,exception);
       return(status == 0 ? MagickFalse : MagickTrue);
     }
-  x_mid=(ssize_t) ceil((segment->x1+segment->x2)/2-0.5);
-  y_mid=(ssize_t) ceil((segment->y1+segment->y2)/2-0.5);
+  x_mid=CastDoubleToLong(ceil((segment->x1+segment->x2)/2-0.5));
+  y_mid=CastDoubleToLong(ceil((segment->y1+segment->y2)/2-0.5));
   if ((fabs(segment->x1-x_mid) < MagickEpsilon) &&
       (fabs(segment->x2-x_mid) < MagickEpsilon) &&
       (fabs(segment->y1-y_mid) < MagickEpsilon) &&
@@ -1479,11 +1479,11 @@
       /*
         Left pixel.
       */
-      x=(ssize_t) ceil(segment->x1-0.5);
-      u=GetCacheViewVirtualPixels(u_view,x,(ssize_t) ceil(segment->y1-0.5),1,1,
-        exception);
-      v=GetCacheViewVirtualPixels(v_view,x,(ssize_t) ceil(segment->y2-0.5),1,1,
-        exception);
+      x=CastDoubleToLong(ceil(segment->x1-0.5));
+      u=GetCacheViewVirtualPixels(u_view,x,CastDoubleToLong(ceil(
+        segment->y1-0.5)),1,1,exception);
+      v=GetCacheViewVirtualPixels(v_view,x,CastDoubleToLong(ceil(
+        segment->y2-0.5)),1,1,exception);
       q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
       if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
           (q == (Quantum *) NULL))
@@ -1502,11 +1502,11 @@
           /*
             Right pixel.
           */
-          x=(ssize_t) ceil(segment->x2-0.5);
-          u=GetCacheViewVirtualPixels(u_view,x,(ssize_t) ceil(segment->y1-0.5),
-            1,1,exception);
-          v=GetCacheViewVirtualPixels(v_view,x,(ssize_t) ceil(segment->y2-0.5),
-            1,1,exception);
+          x=CastDoubleToLong(ceil(segment->x2-0.5));
+          u=GetCacheViewVirtualPixels(u_view,x,CastDoubleToLong(ceil(
+            segment->y1-0.5)),1,1,exception);
+          v=GetCacheViewVirtualPixels(v_view,x,CastDoubleToLong(ceil(
+            segment->y2-0.5)),1,1,exception);
           q=QueueCacheViewAuthenticPixels(image_view,x,y_mid,1,1,exception);
           if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
               (q == (Quantum *) NULL))
@@ -1531,11 +1531,11 @@
           /*
             Bottom pixel.
           */
-          y=(ssize_t) ceil(segment->y2-0.5);
-          u=GetCacheViewVirtualPixels(u_view,(ssize_t) ceil(segment->x1-0.5),y,
-            1,1,exception);
-          v=GetCacheViewVirtualPixels(v_view,(ssize_t) ceil(segment->x2-0.5),y,
-            1,1,exception);
+          y=CastDoubleToLong(ceil(segment->y2-0.5));
+          u=GetCacheViewVirtualPixels(u_view,CastDoubleToLong(ceil(
+            segment->x1-0.5)),y,1,1,exception);
+          v=GetCacheViewVirtualPixels(v_view,CastDoubleToLong(ceil(
+            segment->x2-0.5)),y,1,1,exception);
           q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
           if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
               (q == (Quantum *) NULL))
@@ -1555,11 +1555,11 @@
           /*
             Top pixel.
           */
-          y=(ssize_t) ceil(segment->y1-0.5);
-          u=GetCacheViewVirtualPixels(u_view,(ssize_t) ceil(segment->x1-0.5),y,
-            1,1,exception);
-          v=GetCacheViewVirtualPixels(v_view,(ssize_t) ceil(segment->x2-0.5),y,
-            1,1,exception);
+          y=CastDoubleToLong(ceil(segment->y1-0.5));
+          u=GetCacheViewVirtualPixels(u_view,CastDoubleToLong(ceil(
+            segment->x1-0.5)),y,1,1,exception);
+          v=GetCacheViewVirtualPixels(v_view,CastDoubleToLong(ceil(
+            segment->x2-0.5)),y,1,1,exception);
           q=QueueCacheViewAuthenticPixels(image_view,x_mid,y,1,1,exception);
           if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
               (q == (Quantum *) NULL))
@@ -1581,11 +1581,11 @@
       /*
         Middle pixel.
       */
-      x=(ssize_t) ceil(segment->x1-0.5);
-      y=(ssize_t) ceil(segment->y1-0.5);
+      x=CastDoubleToLong(ceil(segment->x1-0.5));
+      y=CastDoubleToLong(ceil(segment->y1-0.5));
       u=GetCacheViewVirtualPixels(u_view,x,y,1,1,exception);
-      x=(ssize_t) ceil(segment->x2-0.5);
-      y=(ssize_t) ceil(segment->y2-0.5);
+      x=CastDoubleToLong(ceil(segment->x2-0.5));
+      y=CastDoubleToLong(ceil(segment->y2-0.5));
       v=GetCacheViewVirtualPixels(v_view,x,y,1,1,exception);
       q=QueueCacheViewAuthenticPixels(image_view,x_mid,y_mid,1,1,exception);
       if ((u == (const Quantum *) NULL) || (v == (const Quantum *) NULL) ||
@@ -1916,13 +1916,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2082,10 +2082,10 @@
   image_view=AcquireAuthenticCacheView(border_image,exception);
   for (y=0; y < (ssize_t) border_image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2213,10 +2213,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -2233,7 +2233,7 @@
       double
         value;
 
-      register ssize_t
+      ssize_t
         i;
 
       value=GetPseudoRandomValue(random_info[id]);
@@ -2351,7 +2351,7 @@
     (void) SetImageColorspace(image,sRGBColorspace,exception);
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -2380,10 +2380,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2396,7 +2396,7 @@
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -2483,10 +2483,10 @@
   PixelInfo
     pixel;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -2696,14 +2696,14 @@
   status=MagickTrue;
   for (y=0; y < (ssize_t) stereo_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p,
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict r;
 
     p=GetVirtualPixels(left_image,-x_offset,y-y_offset,image->columns,1,
@@ -2864,13 +2864,13 @@
     PointInfo
       delta;
 
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
@@ -2894,7 +2894,7 @@
       distance=delta.x*delta.x+delta.y*delta.y;
       if (distance >= (radius*radius))
         {
-          register ssize_t
+          ssize_t
             i;
 
           for (i=0; i < (ssize_t) GetPixelChannels(canvas_image); i++)
@@ -3086,13 +3086,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3311,7 +3311,7 @@
   MagickOffsetType
     progress;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -3374,13 +3374,13 @@
 #endif
   for (y=0; y < (ssize_t) wave_image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -3472,7 +3472,7 @@
     *magick_restrict q,
     *magick_restrict r;
 
-  register ssize_t
+  ssize_t
     i;
 
   p=pixels;
@@ -3574,7 +3574,7 @@
   noise_view=AcquireAuthenticCacheView(noise_image,exception);
   for (channel=0; channel < (ssize_t) GetPixelChannels(image); channel++)
   {
-    register ssize_t
+    ssize_t
       i;
 
     size_t
@@ -3607,7 +3607,7 @@
     i=0;
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
       ssize_t
@@ -3650,11 +3650,11 @@
         const int
           id = GetOpenMPThreadId();
 
-        register float
+        float
           *magick_restrict p,
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           x;
 
         p=kernel+id*image->columns;
@@ -3673,11 +3673,11 @@
         const int
           id = GetOpenMPThreadId();
 
-        register float
+        float
           *magick_restrict p,
           *magick_restrict q;
 
-        register ssize_t
+        ssize_t
           y;
 
         p=kernel+id*image->rows;
@@ -3718,10 +3718,10 @@
       MagickBooleanType
         sync;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       ssize_t
diff --git a/MagickCore/visual-effects.h b/MagickCore/visual-effects.h
index b5d4a7b..ae28b6f 100644
--- a/MagickCore/visual-effects.h
+++ b/MagickCore/visual-effects.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/vms.c b/MagickCore/vms.c
index 06f65a2..7712914 100644
--- a/MagickCore/vms.c
+++ b/MagickCore/vms.c
@@ -17,7 +17,7 @@
 %                                October 1994                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -171,10 +171,10 @@
   int
     status;
 
-  register char
+  char
     *p;
 
-  register int
+  int
     i;
 
   struct dsc$descriptor_s
diff --git a/MagickCore/vms.h b/MagickCore/vms.h
index e302378..b5f800e 100644
--- a/MagickCore/vms.h
+++ b/MagickCore/vms.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/widget-private.h b/MagickCore/widget-private.h
index a2afdd6..93b1b23 100644
--- a/MagickCore/widget-private.h
+++ b/MagickCore/widget-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/widget.c b/MagickCore/widget.c
index 07077fe..f12dfaf 100644
--- a/MagickCore/widget.c
+++ b/MagickCore/widget.c
@@ -18,7 +18,7 @@
 %                              September 1993                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -512,7 +512,7 @@
     x,
     y;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -1138,11 +1138,11 @@
     }
     default:
     {
-      register char
+      char
         *p,
         *q;
 
-      register int
+      int
         i;
 
       if (state & ControlState)
@@ -1625,7 +1625,7 @@
     x,
     y;
 
-  register int
+  int
     i;
 
   static char
@@ -2895,7 +2895,7 @@
     id,
     y;
 
-  register int
+  int
     i;
 
   static unsigned int
@@ -3643,7 +3643,7 @@
   int
     x;
 
-  register int
+  int
     i;
 
   static MagickBooleanType
@@ -4230,7 +4230,7 @@
     x,
     y;
 
-  register ssize_t
+  ssize_t
     i;
 
   static char
@@ -4410,7 +4410,7 @@
         special_info.y=action_info.y;
         if (anomaly == MagickFalse)
           {
-            register char
+            char
               *p;
 
             special_info.text=(char *) FormatButtonText;
@@ -4787,7 +4787,7 @@
             XDrawMatteText(display,&windows->widget,&reply_info);
             if (id == list_info.id)
               {
-                register char
+                char
                   *p;
 
                 p=reply_info.text+strlen(reply_info.text)-1;
@@ -5450,7 +5450,7 @@
 
 static int FontCompare(const void *x,const void *y)
 {
-  register char
+  char
     *p,
     *q;
 
@@ -5490,7 +5490,7 @@
     x,
     y;
 
-  register int
+  int
     i;
 
   static char
@@ -6759,7 +6759,7 @@
   int
     x;
 
-  register int
+  int
     i;
 
   static MagickStatusType
@@ -8446,7 +8446,7 @@
     x,
     y;
 
-  register int
+  int
     i;
 
   Status
@@ -8966,7 +8966,7 @@
   char
     primary_selection[MagickPathExtent];
 
-  register int
+  int
     i;
 
   static MagickStatusType
diff --git a/MagickCore/widget.h b/MagickCore/widget.h
index ea79c3e..e0be6cb 100644
--- a/MagickCore/widget.h
+++ b/MagickCore/widget.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/xml-tree-private.h b/MagickCore/xml-tree-private.h
index da07f87..9f409aa 100644
--- a/MagickCore/xml-tree-private.h
+++ b/MagickCore/xml-tree-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/xml-tree.c b/MagickCore/xml-tree.c
index e655c20..d9eb1f9 100644
--- a/MagickCore/xml-tree.c
+++ b/MagickCore/xml-tree.c
@@ -23,7 +23,7 @@
 %                               December 2004                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -220,7 +220,7 @@
     subnode[MagickPathExtent],
     tag[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -304,10 +304,10 @@
     *base64,
     *canonical_content;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -438,7 +438,7 @@
 
 static char **DestroyXMLTreeAttributes(char **attributes)
 {
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -497,7 +497,7 @@
   char
     **attributes;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -607,7 +607,7 @@
   MagickOffsetType
     offset;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -696,7 +696,7 @@
       (void) lseek(file,0,SEEK_SET);
       for (i=0; i < length; i+=count)
       {
-        count=read(file,xml+i,(size_t) MagickMin(length-i,(size_t) SSIZE_MAX));
+        count=read(file,xml+i,(size_t) MagickMin(length-i,(size_t) LONG_MAX));
         if (count <= 0)
           {
             count=0;
@@ -779,7 +779,7 @@
 MagickExport const char *GetXMLTreeAttribute(XMLTreeInfo *xml_info,
   const char *tag)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -848,7 +848,7 @@
 MagickPrivate MagickBooleanType GetXMLTreeAttributes(
   const XMLTreeInfo *xml_info,SplayTreeInfo *attributes)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(xml_info != (XMLTreeInfo *) NULL);
@@ -1008,7 +1008,7 @@
     subnode[MagickPathExtent],
     tag[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1079,7 +1079,7 @@
 MagickPrivate const char **GetXMLTreeProcessingInstructions(
   XMLTreeInfo *xml_info,const char *target)
 {
-  register ssize_t
+  ssize_t
     i;
 
   XMLTreeRoot
@@ -1298,7 +1298,7 @@
     c,
     encoding;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1377,11 +1377,11 @@
     byte,
     c;
 
-  register char
+  char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1588,7 +1588,7 @@
 static MagickBooleanType ValidateEntities(char *tag,char *xml,
   const size_t depth,char **entities)
 {
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -1620,7 +1620,7 @@
   char
     *target;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1701,7 +1701,7 @@
     *t,
     *v;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1940,7 +1940,7 @@
 
 static inline MagickBooleanType IsSkipTag(const char *tag)
 {
-  register ssize_t
+  ssize_t
     i;
 
   i=0;
@@ -1968,10 +1968,10 @@
   MagickBooleanType
     status;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2492,7 +2492,7 @@
 MagickPrivate XMLTreeInfo *SetXMLTreeAttribute(XMLTreeInfo *xml_info,
   const char *tag,const char *value)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2661,7 +2661,7 @@
   const char
     *attribute;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2763,11 +2763,11 @@
   char
     *xml;
 
-  register char
+  char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickCore/xml-tree.h b/MagickCore/xml-tree.h
index 9e6c93a..f60336e 100644
--- a/MagickCore/xml-tree.h
+++ b/MagickCore/xml-tree.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/xwindow-private.h b/MagickCore/xwindow-private.h
index a219fc3..787308b 100644
--- a/MagickCore/xwindow-private.h
+++ b/MagickCore/xwindow-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index f8b60c8..3424114 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -17,7 +17,7 @@
 %                                  July 1992                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -246,7 +246,7 @@
 */
 MagickExport void DestroyXResources(void)
 {
-  register int
+  int
     i;
 
   unsigned int
@@ -569,10 +569,10 @@
   annotate_view=AcquireAuthenticCacheView(annotate_image,exception);
   for (y=0; y < (int) annotate_image->rows; y++)
   {
-    register int
+    int
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(annotate_view,0,(ssize_t) y,
@@ -747,11 +747,11 @@
   char
     **fontlist;
 
-  register char
+  char
     *p,
     *q;
 
-  register int
+  int
     i;
 
   unsigned int
@@ -820,7 +820,7 @@
   char
     *font_name;
 
-  register const char
+  const char
     **p;
 
   XFontStruct
@@ -835,7 +835,7 @@
       char
         **fontlist;
 
-      register int
+      int
         i;
 
       /*
@@ -1040,10 +1040,10 @@
   double
     min_distance;
 
-  register double
+  double
     distance;
 
-  register int
+  int
     i,
     j;
 
@@ -1165,7 +1165,7 @@
   int
     visual_mask;
 
-  register int
+  int
     i;
 
   size_t
@@ -1962,7 +1962,7 @@
   int
     unique_file;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2139,13 +2139,13 @@
   PixelInfo
     color;
 
-  register char
+  char
     *q;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register int
+  int
     i,
     j,
     x;
@@ -2153,7 +2153,7 @@
   unsigned int
     scanline_pad;
 
-  register size_t
+  size_t
     pixel;
 
   unsigned char
@@ -2468,10 +2468,10 @@
   draw_view=AcquireAuthenticCacheView(draw_image,exception);
   for (y=0; y < (int) draw_image->rows; y++)
   {
-    register int
+    int
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=QueueCacheViewAuthenticPixels(draw_view,0,(ssize_t) y,draw_image->columns,
@@ -2594,10 +2594,10 @@
   draw_view=AcquireAuthenticCacheView(draw_image,exception);
   for (y=0; y < (int) draw_image->rows; y++)
   {
-    register int
+    int
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=GetCacheViewAuthenticPixels(draw_view,0,(ssize_t) y,draw_image->columns,1,
@@ -3032,7 +3032,7 @@
   Colormap
     colormap;
 
-  register ssize_t
+  ssize_t
     i;
 
   Status
@@ -3356,7 +3356,7 @@
   int
     c;
 
-  register const char
+  const char
     *p;
 
   XrmDatabase
@@ -4000,7 +4000,7 @@
   RectangleInfo
     crop_info;
 
-  register int
+  int
     i;
 
   static ColormapInfo
@@ -4158,14 +4158,14 @@
       MagickBooleanType
         import;
 
-      register int
+      int
         j,
         x;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register size_t
+      size_t
         pixel;
 
       unsigned int
@@ -4326,7 +4326,7 @@
           case DirectClass:
           default:
           {
-            register size_t
+            size_t
               color,
               index;
 
@@ -5859,13 +5859,13 @@
   int
     y;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register int
+  int
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -5929,7 +5929,7 @@
   canvas_view=AcquireVirtualCacheView(canvas,exception);
   if (ximage->format == XYBitmap)
     {
-      register unsigned short
+      unsigned short
         polarity;
 
       unsigned char
@@ -5985,7 +5985,7 @@
       {
         case 2:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6037,7 +6037,7 @@
         }
         case 4:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6105,10 +6105,10 @@
         }
         default:
         {
-          register int
+          int
             k;
 
-          register unsigned int
+          unsigned int
             bytes_per_pixel;
 
           /*
@@ -6141,7 +6141,7 @@
       {
         case 2:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6194,7 +6194,7 @@
         }
         case 4:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6352,10 +6352,10 @@
               }
             else
               {
-                register int
+                int
                   k;
 
-                register unsigned int
+                unsigned int
                   bytes_per_pixel;
 
                 /*
@@ -6476,13 +6476,13 @@
   int
     y;
 
-  register int
+  int
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -6546,7 +6546,7 @@
   canvas_view=AcquireVirtualCacheView(canvas,exception);
   if (ximage->format == XYBitmap)
     {
-      register unsigned short
+      unsigned short
         polarity;
 
       unsigned char
@@ -6602,7 +6602,7 @@
       {
         case 2:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6655,7 +6655,7 @@
         }
         case 4:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6724,10 +6724,10 @@
         }
         default:
         {
-          register int
+          int
             k;
 
-          register unsigned int
+          unsigned int
             bytes_per_pixel;
 
           unsigned char
@@ -6766,7 +6766,7 @@
       {
         case 2:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6819,7 +6819,7 @@
         }
         case 4:
         {
-          register unsigned int
+          unsigned int
             nibble;
 
           /*
@@ -6977,10 +6977,10 @@
               }
             else
               {
-                register int
+                int
                   k;
 
-                register unsigned int
+                unsigned int
                   bytes_per_pixel;
 
                 unsigned char
@@ -7094,13 +7094,13 @@
   PixelInfo
     pixel;
 
-  register int
+  int
     x;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -7195,14 +7195,14 @@
     ((width*windows->magnify.ximage->bits_per_pixel) >> 3));
   if (ximage->bits_per_pixel < 8)
     {
-      register unsigned char
+      unsigned char
         background,
         byte,
         foreground,
         p_bit,
         q_bit;
 
-      register unsigned int
+      unsigned int
         plane;
 
       XPixelInfo
@@ -7391,7 +7391,7 @@
       }
       default:
       {
-        register unsigned int
+        unsigned int
           bytes_per_pixel,
           m;
 
@@ -7714,7 +7714,7 @@
   Colormap
     colormap;
 
-  register ssize_t
+  ssize_t
     i;
 
   Status
@@ -7756,7 +7756,7 @@
             Image
               *affinity_image;
 
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             /*
@@ -7939,7 +7939,7 @@
           int
             y;
 
-          register int
+          int
             x;
 
           unsigned short
@@ -7967,10 +7967,10 @@
           image_view=AcquireAuthenticCacheView(image,exception);
           for (y=0; y < (int) image->rows; y++)
           {
-            register int
+            int
               x;
 
-            register const Quantum
+            const Quantum
               *magick_restrict p;
 
             p=GetCacheViewAuthenticPixels(image_view,0,(ssize_t) y,
@@ -8391,7 +8391,7 @@
       int
         flags;
 
-      register char
+      char
         *p;
 
       /*
@@ -8581,7 +8581,7 @@
   const char
     *locale_message;
 
-  register char
+  char
     *p;
 
   (void) CopyMagickString(tag,text,MagickPathExtent);
@@ -9694,7 +9694,7 @@
   RectangleInfo
     rectangle_info;
 
-  register int
+  int
     i;
 
   Status
@@ -9769,7 +9769,7 @@
 MagickPrivate Window XWindowByName(Display *display,const Window root_window,
   const char *name)
 {
-  register int
+  int
     i;
 
   Status
diff --git a/MagickCore/xwindow.h b/MagickCore/xwindow.h
index 7c8897c..d5f8f93 100644
--- a/MagickCore/xwindow.h
+++ b/MagickCore/xwindow.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/Android.bp b/MagickWand/Android.bp
index 205cf19..8e1f69d 100644
--- a/MagickWand/Android.bp
+++ b/MagickWand/Android.bp
@@ -12,6 +12,16 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "external_ImageMagick_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    //   legacy_notice
+    default_applicable_licenses: ["external_ImageMagick_license"],
+}
+
 cc_library_static {
     name: "MagickWand",
 
diff --git a/MagickWand/MagickWand.h b/MagickWand/MagickWand.h
index c1516ba..06f9e69 100644
--- a/MagickWand/MagickWand.h
+++ b/MagickWand/MagickWand.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/Makefile.am b/MagickWand/Makefile.am
index fb75e96..1e61ece 100644
--- a/MagickWand/Makefile.am
+++ b/MagickWand/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/animate.c b/MagickWand/animate.c
index e2f48a4..02eabc9 100644
--- a/MagickWand/animate.c
+++ b/MagickWand/animate.c
@@ -17,7 +17,7 @@
 %                                July 1992                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -264,7 +264,7 @@
   QuantizeInfo
     *quantize_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickWand/animate.h b/MagickWand/animate.h
index 7355fb5..64b7efa 100644
--- a/MagickWand/animate.h
+++ b/MagickWand/animate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/compare.c b/MagickWand/compare.c
index aa5e877..222b9da 100644
--- a/MagickWand/compare.c
+++ b/MagickWand/compare.c
@@ -17,7 +17,7 @@
 %                               December 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -265,7 +265,7 @@
   RectangleInfo
     offset;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickWand/compare.h b/MagickWand/compare.h
index ddc6e6b..0d8c5f2 100644
--- a/MagickWand/compare.h
+++ b/MagickWand/compare.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/composite.c b/MagickWand/composite.c
index 69e71f3..01c0ede 100644
--- a/MagickWand/composite.c
+++ b/MagickWand/composite.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -456,7 +456,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickWand/composite.h b/MagickWand/composite.h
index 1a52d5d..874a0b8 100644
--- a/MagickWand/composite.h
+++ b/MagickWand/composite.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/conjure.c b/MagickWand/conjure.c
index f189872..d096e0d 100644
--- a/MagickWand/conjure.c
+++ b/MagickWand/conjure.c
@@ -17,7 +17,7 @@
 %                               December 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -151,7 +151,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickWand/conjure.h b/MagickWand/conjure.h
index 51e06f3..6692865 100644
--- a/MagickWand/conjure.h
+++ b/MagickWand/conjure.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/convert.c b/MagickWand/convert.c
index b9340e3..276666f 100644
--- a/MagickWand/convert.c
+++ b/MagickWand/convert.c
@@ -17,7 +17,7 @@
 %                                April 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -96,7 +96,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -525,7 +525,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickWand/convert.h b/MagickWand/convert.h
index ca4ee1c..25295cc 100644
--- a/MagickWand/convert.h
+++ b/MagickWand/convert.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/deprecate.c b/MagickWand/deprecate.c
index 600f334..fc6f0d8 100644
--- a/MagickWand/deprecate.c
+++ b/MagickWand/deprecate.c
@@ -17,7 +17,7 @@
 %                                October 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/deprecate.h b/MagickWand/deprecate.h
index 5f287a0..b6c73b7 100644
--- a/MagickWand/deprecate.h
+++ b/MagickWand/deprecate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/display.c b/MagickWand/display.c
index abeaafa..081ebd1 100644
--- a/MagickWand/display.c
+++ b/MagickWand/display.c
@@ -17,7 +17,7 @@
 %                                July 1992                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -304,7 +304,7 @@
   QuantizeInfo
     *quantize_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/MagickWand/display.h b/MagickWand/display.h
index 41e9e57..ef76951 100644
--- a/MagickWand/display.h
+++ b/MagickWand/display.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/drawing-wand.c b/MagickWand/drawing-wand.c
index 2f7243c..e9fd537 100644
--- a/MagickWand/drawing-wand.c
+++ b/MagickWand/drawing-wand.c
@@ -23,7 +23,7 @@
 %                                March 2002                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -50,6 +50,7 @@
 #include "MagickWand/MagickWand.h"
 #include "MagickWand/magick-wand-private.h"
 #include "MagickWand/wand.h"
+#include "MagickCore/image-private.h"
 #include "MagickCore/string-private.h"
 
 /*
@@ -487,7 +488,7 @@
   DrawingWand
     *clone_wand;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(wand != (DrawingWand *) NULL);
@@ -1013,10 +1014,10 @@
     *clone_image,
     *image;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1931,13 +1932,13 @@
   double
     *dasharray;
 
-  register const double
+  const double
     *p;
 
-  register double
+  double
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2538,7 +2539,7 @@
   PixelInfo
     pixel;
 
-  register ssize_t
+  ssize_t
     i;
 
   XMLTreeInfo
@@ -4284,10 +4285,10 @@
     x,y,width,height);
   wand->indent_depth++;
   wand->pattern_id=AcquireString(pattern_id);
-  wand->pattern_bounds.x=(ssize_t) ceil(x-0.5);
-  wand->pattern_bounds.y=(ssize_t) ceil(y-0.5);
-  wand->pattern_bounds.width=(size_t) floor(width+0.5);
-  wand->pattern_bounds.height=(size_t) floor(height+0.5);
+  wand->pattern_bounds.x=CastDoubleToLong(ceil(x-0.5));
+  wand->pattern_bounds.y=CastDoubleToLong(ceil(y-0.5));
+  wand->pattern_bounds.width=(size_t) CastDoubleToLong(floor(width+0.5));
+  wand->pattern_bounds.height=(size_t) CastDoubleToLong(floor(height+0.5));
   wand->pattern_offset=wand->mvg_length;
   return(MagickTrue);
 }
@@ -5532,13 +5533,13 @@
   MagickBooleanType
     update;
 
-  register const double
+  const double
     *p;
 
-  register double
+  double
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -6444,7 +6445,7 @@
       const char
         *q;
 
-      register ssize_t
+      ssize_t
         x;
 
       ssize_t
diff --git a/MagickWand/drawing-wand.h b/MagickWand/drawing-wand.h
index e9f3c2d..ee1936e 100644
--- a/MagickWand/drawing-wand.h
+++ b/MagickWand/drawing-wand.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/identify.c b/MagickWand/identify.c
index bc2f1fc..c770b43 100644
--- a/MagickWand/identify.c
+++ b/MagickWand/identify.c
@@ -17,7 +17,7 @@
 %                            September 1994                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -212,7 +212,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -338,6 +338,7 @@
         continue;
       }
     pend=image != (Image *) NULL ? MagickTrue : MagickFalse;
+    image_info->ping=MagickFalse;
     switch (*(option+1))
     {
       case 'a':
@@ -445,7 +446,6 @@
               ThrowIdentifyException(OptionError,"MissingArgument",option);
             if (IsGeometry(argv[i]) == MagickFalse)
               ThrowIdentifyInvalidArgumentException(option,argv[i]);
-            image_info->ping=MagickFalse;
             break;
           }
         if (LocaleCompare("concurrent",option+1) == 0)
@@ -486,8 +486,6 @@
                   ThrowIdentifyException(OptionError,"NoSuchOption",argv[i]);
                 break;
               }
-            if (LocaleNCompare("identify:locate",argv[i],15) == 0)
-              image_info->ping=MagickFalse;
             break;
           }
         if (LocaleCompare("density",option+1) == 0)
@@ -649,8 +647,8 @@
             interlace=ParseCommandOption(MagickInterlaceOptions,MagickFalse,
               argv[i]);
             if (interlace < 0)
-              ThrowIdentifyException(OptionError,
-                "UnrecognizedInterlaceType",argv[i]);
+              ThrowIdentifyException(OptionError,"UnrecognizedInterlaceType",
+                argv[i]);
             break;
           }
         if (LocaleCompare("interpolate",option+1) == 0)
@@ -763,7 +761,10 @@
       case 'p':
       {
         if (LocaleCompare("ping",option+1) == 0)
-          break;
+          {
+            image_info->ping=MagickTrue;
+            break;
+          }
         if (LocaleCompare("precision",option+1) == 0)
           {
             if (*option == '+')
diff --git a/MagickWand/identify.h b/MagickWand/identify.h
index f458816..6ac6c6e 100644
--- a/MagickWand/identify.h
+++ b/MagickWand/identify.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/import.c b/MagickWand/import.c
index b301e5f..271dee4 100644
--- a/MagickWand/import.c
+++ b/MagickWand/import.c
@@ -17,7 +17,7 @@
 %                              July 1992                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -258,7 +258,7 @@
   QuantizeInfo
     *quantize_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickWand/import.h b/MagickWand/import.h
index ac361bd..659af40 100644
--- a/MagickWand/import.h
+++ b/MagickWand/import.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/magick-cli.c b/MagickWand/magick-cli.c
index 7932754..f6f81f4 100644
--- a/MagickWand/magick-cli.c
+++ b/MagickWand/magick-cli.c
@@ -22,7 +22,7 @@
 %                               January 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -653,7 +653,7 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (ExpandFilenames(&argc,&argv) == MagickFalse)
diff --git a/MagickWand/magick-cli.h b/MagickWand/magick-cli.h
index b391e78..de1f7f4 100644
--- a/MagickWand/magick-cli.h
+++ b/MagickWand/magick-cli.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c
index 82e98d9..ba1634e 100644
--- a/MagickWand/magick-image.c
+++ b/MagickWand/magick-image.c
@@ -23,7 +23,7 @@
 %                                 August 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -5333,7 +5333,7 @@
   PixelWand
     **pixel_wands;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(wand != (MagickWand *) NULL);
@@ -5658,7 +5658,7 @@
 WandExport MagickBooleanType MagickGetImagePixelColor(MagickWand *wand,
   const ssize_t x,const ssize_t y,PixelWand *color)
 {
-  register const Quantum
+  const Quantum
     *p;
 
   CacheView
@@ -6584,8 +6584,8 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 %  MagickImportImagePixels() accepts pixel datand stores it in the image at the
-%  location you specify.  The method returns MagickFalse on success otherwise
-%  MagickTrue if an error is encountered.  The pixel data can be either char,
+%  location you specify.  The method returns MagickTrue on success otherwise
+%  MagickFalse if an error is encountered.  The pixel data can be either char,
 %  short int, int, ssize_t, float, or double in the order specified by map.
 %
 %  Suppose your want to upload the first scanline of a 640x480 image from
@@ -11045,7 +11045,7 @@
 WandExport MagickBooleanType MagickSetImagePixelColor(MagickWand *wand,
   const ssize_t x,const ssize_t y,const PixelWand *color)
 {
-  register Quantum
+  Quantum
     *q;
 
   CacheView
diff --git a/MagickWand/magick-image.h b/MagickWand/magick-image.h
index c13f094..50365fc 100644
--- a/MagickWand/magick-image.h
+++ b/MagickWand/magick-image.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/magick-property.c b/MagickWand/magick-property.c
index 4e25891..c16046a 100644
--- a/MagickWand/magick-property.c
+++ b/MagickWand/magick-property.c
@@ -23,7 +23,7 @@
 %                                 August 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -600,7 +600,7 @@
   const char
     *artifact;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -752,7 +752,7 @@
   const char
     *property;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -889,7 +889,7 @@
   const char
     *property;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1091,7 +1091,7 @@
   const char
     *option;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1497,10 +1497,10 @@
   double
     *sampling_factors;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(wand != (MagickWand *) NULL);
@@ -2210,13 +2210,17 @@
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%   M a g i c k S e t I m a g e A r t i f r c t                               %
+%   M a g i c k S e t I m a g e A r t i f a c t                               %
 %                                                                             %
 %                                                                             %
 %                                                                             %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-%  MagickSetImageArtifact() associates a artifact with an image.
+%  MagickSetImageArtifact() sets a key-value pair in the image artifact
+%  namespace.  Artifacts differ from properties.  Properties are public and are
+%  generally exported to an external image format if the format supports it.
+%  Artifacts are private and are utilized by the internal ImageMagick API to
+%  modify the behavior of certain algorithms.
 %
 %  The format of the MagickSetImageArtifact method is:
 %
@@ -2775,7 +2779,7 @@
   char
     sampling_factor[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(wand != (MagickWand *) NULL);
diff --git a/MagickWand/magick-property.h b/MagickWand/magick-property.h
index 4c285c3..03cfe0d 100644
--- a/MagickWand/magick-property.h
+++ b/MagickWand/magick-property.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/magick-wand-private.h b/MagickWand/magick-wand-private.h
index f0b1bd4..30d638f 100644
--- a/MagickWand/magick-wand-private.h
+++ b/MagickWand/magick-wand-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/magick-wand.c b/MagickWand/magick-wand.c
index ee1b16a..cd84116 100644
--- a/MagickWand/magick-wand.c
+++ b/MagickWand/magick-wand.c
@@ -23,7 +23,7 @@
 %                                 August 2003                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/method-attribute.h b/MagickWand/method-attribute.h
index 5198d02..127ca61 100644
--- a/MagickWand/method-attribute.h
+++ b/MagickWand/method-attribute.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/mogrify-private.h b/MagickWand/mogrify-private.h
index e62044a..aa2790b 100644
--- a/MagickWand/mogrify-private.h
+++ b/MagickWand/mogrify-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c
index 08a1b2e..8cad37b 100644
--- a/MagickWand/mogrify.c
+++ b/MagickWand/mogrify.c
@@ -17,7 +17,7 @@
 %                                March 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -142,7 +142,7 @@
     regard_warnings,
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -422,7 +422,7 @@
   const char
     *locale_message;
 
-  register char
+  char
     *p;
 
   magick_unreferenced(client_data);
@@ -475,7 +475,7 @@
   MagickBooleanType
     error;
 
-  register size_t
+  size_t
     x;
 
   size_t
@@ -744,7 +744,7 @@
     geometry,
     region_geometry;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -956,10 +956,10 @@
             if ((flags & SigmaValue) == 0)
               geometry_info.sigma=geometry_info.rho;
             if ((flags & XiValue) == 0)
-              geometry_info.xi=2.0*sqrt(geometry_info.rho*geometry_info.rho+
+              geometry_info.xi=1.0*sqrt(geometry_info.rho*geometry_info.rho+
                 geometry_info.sigma*geometry_info.sigma);
             if ((flags & PsiValue) == 0)
-              geometry_info.psi=0.5*sqrt(geometry_info.rho*geometry_info.rho+
+              geometry_info.psi=0.25*sqrt(geometry_info.rho*geometry_info.rho+
                 geometry_info.sigma*geometry_info.sigma);
             mogrify_image=BilateralBlurImage(*image,(size_t) geometry_info.rho,
               (size_t) geometry_info.sigma,geometry_info.xi,geometry_info.psi,
@@ -1314,7 +1314,7 @@
             KernelInfo
               *kernel_info;
 
-            register ssize_t
+            ssize_t
               j;
 
             size_t
@@ -1442,7 +1442,7 @@
             double
               *arguments;
 
-            register ssize_t
+            ssize_t
               x;
 
             size_t
@@ -1762,7 +1762,7 @@
             MagickFunction
               function;
 
-            register ssize_t
+            ssize_t
               x;
 
             size_t
@@ -3933,7 +3933,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -6734,7 +6734,7 @@
   ssize_t
     count;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -7122,12 +7122,6 @@
           }
         if (LocaleCompare("format",option+1) == 0)
           {
-            register const char
-              *q;
-
-            for (q=strchr(argv[i+1],'%'); q != (char *) NULL; q=strchr(q+1,'%'))
-              if (strchr("Agkrz@[#",*(q+1)) != (char *) NULL)
-                image_info->ping=MagickFalse;
             (void) SetImageOption(image_info,option+1,argv[i+1]);
             break;
           }
@@ -7852,7 +7846,7 @@
   QuantizeInfo
     *quantize_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -8757,7 +8751,7 @@
             Image
               *polynomial_image;
 
-            register ssize_t
+            ssize_t
               x;
 
             size_t
@@ -9068,7 +9062,7 @@
   size_t
     n;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image_info != (ImageInfo *) NULL);
diff --git a/MagickWand/mogrify.h b/MagickWand/mogrify.h
index f11e2bc..590bd78 100644
--- a/MagickWand/mogrify.h
+++ b/MagickWand/mogrify.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/montage.c b/MagickWand/montage.c
index fe21c9d..028b528 100644
--- a/MagickWand/montage.c
+++ b/MagickWand/montage.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -297,7 +297,7 @@
   MontageInfo
     *montage_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickWand/montage.h b/MagickWand/montage.h
index b159151..9891900 100644
--- a/MagickWand/montage.h
+++ b/MagickWand/montage.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/operation-private.h b/MagickWand/operation-private.h
index 30d9371..794c343 100644
--- a/MagickWand/operation-private.h
+++ b/MagickWand/operation-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/operation.c b/MagickWand/operation.c
index 6258894..3c2dfdd 100644
--- a/MagickWand/operation.c
+++ b/MagickWand/operation.c
@@ -17,7 +17,7 @@
 %                               September 2011                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -104,7 +104,7 @@
   const char
     *locale_message;
 
-  register char
+  char
     *p;
 
   magick_unreferenced(client_data);
@@ -201,7 +201,7 @@
   MagickBooleanType
     error;
 
-  register size_t
+  size_t
     x;
 
   size_t
@@ -909,15 +909,6 @@
         }
       if (LocaleCompare("format",option+1) == 0)
         {
-          /* FUTURE: why the ping test, you could set ping after this! */
-          /*
-          register const char
-            *q;
-
-          for (q=strchr(arg1,'%'); q != (char *) NULL; q=strchr(q+1,'%'))
-            if (strchr("Agkrz@[#",*(q+1)) != (char *) NULL)
-              _image_info->ping=MagickFalse;
-          */
           (void) SetImageOption(_image_info,option+1,ArgOption(NULL));
           break;
         }
@@ -1226,7 +1217,7 @@
         }
       if (LocaleCompare("ping",option+1) == 0)
         {
-          _image_info->ping = ArgBoolean;
+          _image_info->ping=ArgBoolean;
           break;
         }
       if (LocaleCompare("pointsize",option+1) == 0)
@@ -1848,10 +1839,10 @@
           if ((flags & SigmaValue) == 0)
             geometry_info.sigma=geometry_info.rho;
           if ((flags & XiValue) == 0)
-            geometry_info.xi=2.0*sqrt(geometry_info.rho*geometry_info.rho+
+            geometry_info.xi=1.0*sqrt(geometry_info.rho*geometry_info.rho+
               geometry_info.sigma*geometry_info.sigma);
           if ((flags & PsiValue) == 0)
-            geometry_info.psi=0.5*sqrt(geometry_info.rho*geometry_info.rho+
+            geometry_info.psi=0.25*sqrt(geometry_info.rho*geometry_info.rho+
               geometry_info.sigma*geometry_info.sigma);
           new_image=BilateralBlurImage(_image,(size_t) geometry_info.rho,
             (size_t) geometry_info.sigma,geometry_info.xi,geometry_info.psi,
@@ -2164,7 +2155,7 @@
           KernelInfo
             *kernel_info;
 
-          register ssize_t
+          ssize_t
             j;
 
           kernel_info=AcquireKernelInfo(arg1,exception);
@@ -2374,6 +2365,18 @@
     }
     case 'f':
     {
+      if (LocaleCompare("features",option+1) == 0)
+        {
+          CLIWandWarnReplaced("-version -define identify:features=");
+          if (*option == '+')
+            {
+              (void) DeleteImageArtifact(_image,"identify:features");
+              break;
+            }
+          (void) SetImageArtifact(_image,"identify:features",arg1);
+          (void) SetImageArtifact(_image,"verbose","true");
+          break;
+        }
       if (LocaleCompare("flip",option+1) == 0)
         {
           new_image=FlipImage(_image,_exception);
diff --git a/MagickWand/operation.h b/MagickWand/operation.h
index 367a06b..7159568 100644
--- a/MagickWand/operation.h
+++ b/MagickWand/operation.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/pixel-iterator.c b/MagickWand/pixel-iterator.c
index 97b8ad8..5b78082 100644
--- a/MagickWand/pixel-iterator.c
+++ b/MagickWand/pixel-iterator.c
@@ -23,7 +23,7 @@
 %                                March 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -488,10 +488,10 @@
 WandExport PixelWand **PixelGetCurrentIteratorRow(PixelIterator *iterator,
   size_t *number_wands)
 {
-  register const Quantum
+  const Quantum
     *pixels;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(iterator != (PixelIterator *) NULL);
@@ -667,10 +667,10 @@
 WandExport PixelWand **PixelGetNextIteratorRow(PixelIterator *iterator,
   size_t *number_wands)
 {
-  register const Quantum
+  const Quantum
     *pixels;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(iterator != (PixelIterator *) NULL);
@@ -726,10 +726,10 @@
 WandExport PixelWand **PixelGetPreviousIteratorRow(PixelIterator *iterator,
   size_t *number_wands)
 {
-  register const Quantum
+  const Quantum
     *pixels;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(iterator != (PixelIterator *) NULL);
@@ -918,10 +918,10 @@
   MagickBooleanType
     status;
 
-  register Quantum
+  Quantum
     *magick_restrict pixels;
 
-  register ssize_t
+  ssize_t
     x;
 
   assert(iterator != (const PixelIterator *) NULL);
diff --git a/MagickWand/pixel-iterator.h b/MagickWand/pixel-iterator.h
index b53e7d8..6bb4ebc 100644
--- a/MagickWand/pixel-iterator.h
+++ b/MagickWand/pixel-iterator.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/pixel-wand-private.h b/MagickWand/pixel-wand-private.h
index 828d351..e83a884 100644
--- a/MagickWand/pixel-wand-private.h
+++ b/MagickWand/pixel-wand-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/pixel-wand.c b/MagickWand/pixel-wand.c
index 0d08952..b21e2ec 100644
--- a/MagickWand/pixel-wand.c
+++ b/MagickWand/pixel-wand.c
@@ -23,7 +23,7 @@
 %                                March 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -195,7 +195,7 @@
 WandExport PixelWand **ClonePixelWands(const PixelWand **wands,
   const size_t number_wands)
 {
-  register ssize_t
+  ssize_t
     i;
 
   PixelWand
@@ -275,7 +275,7 @@
 WandExport PixelWand **DestroyPixelWands(PixelWand **wand,
   const size_t number_wands)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(wand != (PixelWand **) NULL);
@@ -441,7 +441,7 @@
 */
 WandExport PixelWand **NewPixelWands(const size_t number_wands)
 {
-  register ssize_t
+  ssize_t
     i;
 
   PixelWand
diff --git a/MagickWand/pixel-wand.h b/MagickWand/pixel-wand.h
index 6c75bef..26eb7eb 100644
--- a/MagickWand/pixel-wand.h
+++ b/MagickWand/pixel-wand.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/script-token.c b/MagickWand/script-token.c
index 38da680..4397cbb 100644
--- a/MagickWand/script-token.c
+++ b/MagickWand/script-token.c
@@ -15,7 +15,7 @@
 %                               January 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/script-token.h b/MagickWand/script-token.h
index dd52eec..fbfeee0 100644
--- a/MagickWand/script-token.h
+++ b/MagickWand/script-token.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/stream.c b/MagickWand/stream.c
index b3d2450..401f7db 100644
--- a/MagickWand/stream.c
+++ b/MagickWand/stream.c
@@ -17,7 +17,7 @@
 %                              July 1992                                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -194,7 +194,7 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
diff --git a/MagickWand/stream.h b/MagickWand/stream.h
index 87add7f..4fe9b85 100644
--- a/MagickWand/stream.h
+++ b/MagickWand/stream.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/studio.h b/MagickWand/studio.h
index 57e8ab4..4daf7e8 100644
--- a/MagickWand/studio.h
+++ b/MagickWand/studio.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/tests/script-token-test.c b/MagickWand/tests/script-token-test.c
index b693e89..5ea45a4 100644
--- a/MagickWand/tests/script-token-test.c
+++ b/MagickWand/tests/script-token-test.c
@@ -21,7 +21,7 @@
 %                               January 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/wand-view.c b/MagickWand/wand-view.c
index b113d52..c567425 100644
--- a/MagickWand/wand-view.c
+++ b/MagickWand/wand-view.c
@@ -22,7 +22,7 @@
 %                                March 2003                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -120,7 +120,7 @@
   WandView
     *clone_view;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(wand_view != (WandView *) NULL);
@@ -178,7 +178,7 @@
 static PixelWand ***DestroyPixelsThreadSet(PixelWand ***pixel_wands,
   const size_t number_wands)
 {
-  register ssize_t
+  ssize_t
     i;
 
   assert(pixel_wands != (PixelWand ***) NULL);
@@ -302,14 +302,14 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict duplex_pixels,
       *magick_restrict pixels;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict destination_pixels;
 
     if (status == MagickFalse)
@@ -553,10 +553,10 @@
     const int
       id = GetOpenMPThreadId();
 
-    register const Quantum
+    const Quantum
       *pixels;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -721,7 +721,7 @@
   PixelWand
     ***pixel_wands;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -960,10 +960,10 @@
     MagickBooleanType
       sync;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict pixels;
 
     if (status == MagickFalse)
@@ -1098,13 +1098,13 @@
     MagickBooleanType
       sync;
 
-    register const Quantum
+    const Quantum
       *magick_restrict pixels;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict destination_pixels;
 
     if (status == MagickFalse)
@@ -1253,10 +1253,10 @@
     MagickBooleanType
       sync;
 
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict pixels;
 
     if (status == MagickFalse)
diff --git a/MagickWand/wand-view.h b/MagickWand/wand-view.h
index 5c95d8f..d23d045 100644
--- a/MagickWand/wand-view.h
+++ b/MagickWand/wand-view.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/wand.c b/MagickWand/wand.c
index 2905102..e36d0b6 100644
--- a/MagickWand/wand.c
+++ b/MagickWand/wand.c
@@ -17,7 +17,7 @@
 %                                 May  2004                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/wand.h b/MagickWand/wand.h
index 99d6ff7..d481738 100644
--- a/MagickWand/wand.h
+++ b/MagickWand/wand.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/wandcli-private.h b/MagickWand/wandcli-private.h
index b848138..5df6230 100644
--- a/MagickWand/wandcli-private.h
+++ b/MagickWand/wandcli-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/MagickWand/wandcli.c b/MagickWand/wandcli.c
index f9b52ca..5445281 100644
--- a/MagickWand/wandcli.c
+++ b/MagickWand/wandcli.c
@@ -15,7 +15,7 @@
 %                              Anthony Thyssen                                %
 %                                 April 2011                                  %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/MagickWand/wandcli.h b/MagickWand/wandcli.h
index 9f8ef3b..f2d2a90 100644
--- a/MagickWand/wandcli.h
+++ b/MagickWand/wandcli.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/Makefile.am b/Makefile.am
index 10acf26..f4732d9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/Makefile.in b/Makefile.in
index 05f7183..f686ad6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.2 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -33,7 +33,7 @@
 #  Top-Level Makefile for building ImageMagick.
 #
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -49,7 +49,7 @@
 #
 #  Makefile for building ImageMagick m4 macros.
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -65,7 +65,7 @@
 #
 #  Makefile for Magick ImageMagick configuration files.
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -81,7 +81,7 @@
 #
 #  Makefile for building ImageMagick Coder library.
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -98,7 +98,7 @@
 #  Makefile for building the MagickCore API.
 #
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -123,7 +123,7 @@
 
 # AM_CPPFLAGS += -I$(top_srcdir)/Magick++/lib
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -139,7 +139,7 @@
 #
 #  Makefile for building ImageMagick filter modules.
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -155,7 +155,7 @@
 #
 #  Makefile for building ImageMagick utilities.
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -589,13 +589,14 @@
 	coders/wpg.c coders/wpg.h coders/xbm.c coders/xbm.h \
 	coders/xc.c coders/xcf.c coders/xcf.h coders/xc.h coders/x.h \
 	coders/xpm.c coders/xpm.h coders/xps.c coders/xps.h \
-	coders/xtrn.c coders/xtrn.h coders/xwd.h coders/ycbcr.c \
-	coders/ycbcr.h coders/yuv.c coders/yuv.h coders/dps.c \
-	coders/djvu.c coders/exr.c coders/flif.c coders/fpx.c \
-	coders/clipboard.c coders/emf.c coders/heic.c coders/jbig.c \
-	coders/jpeg.c coders/jp2.c coders/jxl.c coders/png.c \
-	coders/ept.c coders/tiff.c coders/webp.c coders/wmf.c \
-	coders/x.c coders/xwd.c filters/analyze.c
+	coders/xtrn.c coders/xtrn.h coders/xwd.h coders/yaml.c \
+	coders/yaml.h coders/ycbcr.c coders/ycbcr.h coders/yuv.c \
+	coders/yuv.h coders/dps.c coders/djvu.c coders/exr.c \
+	coders/flif.c coders/fpx.c coders/clipboard.c coders/emf.c \
+	coders/heic.c coders/jbig.c coders/jpeg.c coders/jp2.c \
+	coders/jxl.c coders/png.c coders/ept.c coders/tiff.c \
+	coders/webp.c coders/wmf.c coders/x.c coders/xwd.c \
+	filters/analyze.c
 am__objects_1 = MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-accelerate.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-animate.lo \
 	MagickCore/libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-annotate.lo \
@@ -825,6 +826,7 @@
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xpm.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.lo \
+	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo \
 	coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.lo \
 	$(am__objects_3) $(am__objects_4) $(am__objects_5) \
@@ -1921,7 +1923,7 @@
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(coders_xps_la_LDFLAGS) $(LDFLAGS) -o $@
 @WITH_MODULES_TRUE@am_coders_xps_la_rpath = -rpath $(codersdir)
-coders_xtrn_la_DEPENDENCIES = $(MAGICKCORE_LIBS) $(am__DEPENDENCIES_1)
+coders_xtrn_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
 am_coders_xtrn_la_OBJECTS = coders/xtrn_la-xtrn.lo
 coders_xtrn_la_OBJECTS = $(am_coders_xtrn_la_OBJECTS)
 coders_xtrn_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
@@ -1937,6 +1939,14 @@
 	$(coders_xwd_la_LDFLAGS) $(LDFLAGS) -o $@
 @WITH_MODULES_TRUE@@X11_DELEGATE_TRUE@am_coders_xwd_la_rpath = -rpath \
 @WITH_MODULES_TRUE@@X11_DELEGATE_TRUE@	$(codersdir)
+coders_yaml_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
+am_coders_yaml_la_OBJECTS = coders/yaml_la-yaml.lo
+coders_yaml_la_OBJECTS = $(am_coders_yaml_la_OBJECTS)
+coders_yaml_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(coders_yaml_la_LDFLAGS) $(LDFLAGS) -o \
+	$@
+@WITH_MODULES_TRUE@am_coders_yaml_la_rpath = -rpath $(codersdir)
 coders_ycbcr_la_DEPENDENCIES = $(MAGICKCORE_LIBS)
 am_coders_ycbcr_la_OBJECTS = coders/ycbcr_la-ycbcr.lo
 coders_ycbcr_la_OBJECTS = $(am_coders_ycbcr_la_OBJECTS)
@@ -2404,6 +2414,7 @@
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.Plo \
+	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo \
 	coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.Plo \
 	coders/$(DEPDIR)/aai_la-aai.Plo \
@@ -2537,6 +2548,7 @@
 	coders/$(DEPDIR)/xps_la-xps.Plo \
 	coders/$(DEPDIR)/xtrn_la-xtrn.Plo \
 	coders/$(DEPDIR)/xwd_la-xwd.Plo \
+	coders/$(DEPDIR)/yaml_la-yaml.Plo \
 	coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo \
 	coders/$(DEPDIR)/yuv_la-yuv.Plo \
 	filters/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.Plo \
@@ -2652,9 +2664,9 @@
 	$(coders_xbm_la_SOURCES) $(coders_xc_la_SOURCES) \
 	$(coders_xcf_la_SOURCES) $(coders_xpm_la_SOURCES) \
 	$(coders_xps_la_SOURCES) $(coders_xtrn_la_SOURCES) \
-	$(coders_xwd_la_SOURCES) $(coders_ycbcr_la_SOURCES) \
-	$(coders_yuv_la_SOURCES) $(filters_analyze_la_SOURCES) \
-	$(Magick___demo_analyze_SOURCES) \
+	$(coders_xwd_la_SOURCES) $(coders_yaml_la_SOURCES) \
+	$(coders_ycbcr_la_SOURCES) $(coders_yuv_la_SOURCES) \
+	$(filters_analyze_la_SOURCES) $(Magick___demo_analyze_SOURCES) \
 	$(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \
 	$(Magick___demo_detrans_SOURCES) $(Magick___demo_flip_SOURCES) \
 	$(Magick___demo_gravity_SOURCES) \
@@ -2744,9 +2756,9 @@
 	$(coders_xbm_la_SOURCES) $(coders_xc_la_SOURCES) \
 	$(coders_xcf_la_SOURCES) $(coders_xpm_la_SOURCES) \
 	$(coders_xps_la_SOURCES) $(coders_xtrn_la_SOURCES) \
-	$(coders_xwd_la_SOURCES) $(coders_ycbcr_la_SOURCES) \
-	$(coders_yuv_la_SOURCES) $(filters_analyze_la_SOURCES) \
-	$(Magick___demo_analyze_SOURCES) \
+	$(coders_xwd_la_SOURCES) $(coders_yaml_la_SOURCES) \
+	$(coders_ycbcr_la_SOURCES) $(coders_yuv_la_SOURCES) \
+	$(filters_analyze_la_SOURCES) $(Magick___demo_analyze_SOURCES) \
 	$(Magick___demo_button_SOURCES) $(Magick___demo_demo_SOURCES) \
 	$(Magick___demo_detrans_SOURCES) $(Magick___demo_flip_SOURCES) \
 	$(Magick___demo_gravity_SOURCES) \
@@ -3285,7 +3297,6 @@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
-OLE_LIBS = @OLE_LIBS@
 OPENEXR_CFLAGS = @OPENEXR_CFLAGS@
 OPENEXR_LIBS = @OPENEXR_LIBS@
 OPENMP_CFLAGS = @OPENMP_CFLAGS@
@@ -3377,7 +3388,6 @@
 WEBP_LIBS = @WEBP_LIBS@
 WMF_CFLAGS = @WMF_CFLAGS@
 WMF_LIBS = @WMF_LIBS@
-WS2_32_LIBS = @WS2_32_LIBS@
 WWWDecodeDelegate = @WWWDecodeDelegate@
 WebPDecodeDelegate = @WebPDecodeDelegate@
 WebPEncodeDelegate = @WebPEncodeDelegate@
@@ -3944,6 +3954,8 @@
 	coders/xtrn.c \
 	coders/xtrn.h \
 	coders/xwd.h \
+	coders/yaml.c \
+	coders/yaml.h \
 	coders/ycbcr.c \
 	coders/ycbcr.h \
 	coders/yuv.c \
@@ -4106,6 +4118,7 @@
 	coders/xps.h \
 	coders/xtrn.h \
 	coders/xwd.h \
+	coders/yaml.h \
 	coders/ycbcr.h \
 	coders/yuv.h
 
@@ -4225,6 +4238,7 @@
 @WITH_MODULES_TRUE@	coders/xpm.la \
 @WITH_MODULES_TRUE@	coders/xps.la \
 @WITH_MODULES_TRUE@	coders/xtrn.la \
+@WITH_MODULES_TRUE@	coders/yaml.la \
 @WITH_MODULES_TRUE@	coders/ycbcr.la \
 @WITH_MODULES_TRUE@	coders/yuv.la \
 @WITH_MODULES_TRUE@	$(MAGICKCORE_DPS_MODULES) \
@@ -5043,6 +5057,12 @@
 coders_xwd_la_LDFLAGS = $(MODULECOMMONFLAGS)
 coders_xwd_la_LIBADD = $(MAGICKCORE_LIBS) $(X11_LIBS)
 
+# YAML coder module
+coders_yaml_la_SOURCES = coders/yaml.c
+coders_yaml_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
+coders_yaml_la_LDFLAGS = $(MODULECOMMONFLAGS)
+coders_yaml_la_LIBADD = $(MAGICKCORE_LIBS)
+
 # YCBCR coder module
 coders_ycbcr_la_SOURCES = coders/ycbcr.c
 coders_ycbcr_la_CPPFLAGS = $(MAGICK_CODER_CPPFLAGS)
@@ -5956,7 +5976,7 @@
 UTILITIES_INSTALL_EXEC_LOCAL_TARGETS = install-exec-local-utilities
 UTILITIES_UNINSTALL_LOCAL_TARGETS = uninstall-local-utilities
 
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 # dedicated to making software imaging solutions freely available.
 #
 # You may not use this file except in compliance with the License.
@@ -7005,6 +7025,8 @@
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo:  \
+	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo:  \
 	coders/$(am__dirstamp) coders/$(DEPDIR)/$(am__dirstamp)
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.lo:  \
@@ -7806,6 +7828,11 @@
 
 coders/xwd.la: $(coders_xwd_la_OBJECTS) $(coders_xwd_la_DEPENDENCIES) $(EXTRA_coders_xwd_la_DEPENDENCIES) coders/$(am__dirstamp)
 	$(AM_V_CCLD)$(coders_xwd_la_LINK) $(am_coders_xwd_la_rpath) $(coders_xwd_la_OBJECTS) $(coders_xwd_la_LIBADD) $(LIBS)
+coders/yaml_la-yaml.lo: coders/$(am__dirstamp) \
+	coders/$(DEPDIR)/$(am__dirstamp)
+
+coders/yaml.la: $(coders_yaml_la_OBJECTS) $(coders_yaml_la_DEPENDENCIES) $(EXTRA_coders_yaml_la_DEPENDENCIES) coders/$(am__dirstamp)
+	$(AM_V_CCLD)$(coders_yaml_la_LINK) $(am_coders_yaml_la_rpath) $(coders_yaml_la_OBJECTS) $(coders_yaml_la_LIBADD) $(LIBS)
 coders/ycbcr_la-ycbcr.lo: coders/$(am__dirstamp) \
 	coders/$(DEPDIR)/$(am__dirstamp)
 
@@ -8365,6 +8392,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/aai_la-aai.Plo@am__quote@ # am--include-marker
@@ -8501,6 +8529,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/xps_la-xps.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/xtrn_la-xtrn.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/xwd_la-xwd.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/yaml_la-yaml.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@coders/$(DEPDIR)/yuv_la-yuv.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@filters/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.Plo@am__quote@ # am--include-marker
@@ -10003,6 +10032,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.lo `test -f 'coders/xtrn.c' || echo '$(srcdir)/'`coders/xtrn.c
 
+coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo: coders/yaml.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo `test -f 'coders/yaml.c' || echo '$(srcdir)/'`coders/yaml.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coders/yaml.c' object='coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.lo `test -f 'coders/yaml.c' || echo '$(srcdir)/'`coders/yaml.c
+
 coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo: coders/ycbcr.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo -MD -MP -MF coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Tpo -c -o coders/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.lo `test -f 'coders/ycbcr.c' || echo '$(srcdir)/'`coders/ycbcr.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Tpo coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo
@@ -11263,6 +11299,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_xwd_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/xwd_la-xwd.lo `test -f 'coders/xwd.c' || echo '$(srcdir)/'`coders/xwd.c
 
+coders/yaml_la-yaml.lo: coders/yaml.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_yaml_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/yaml_la-yaml.lo -MD -MP -MF coders/$(DEPDIR)/yaml_la-yaml.Tpo -c -o coders/yaml_la-yaml.lo `test -f 'coders/yaml.c' || echo '$(srcdir)/'`coders/yaml.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/yaml_la-yaml.Tpo coders/$(DEPDIR)/yaml_la-yaml.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='coders/yaml.c' object='coders/yaml_la-yaml.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_yaml_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o coders/yaml_la-yaml.lo `test -f 'coders/yaml.c' || echo '$(srcdir)/'`coders/yaml.c
+
 coders/ycbcr_la-ycbcr.lo: coders/ycbcr.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(coders_ycbcr_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT coders/ycbcr_la-ycbcr.lo -MD -MP -MF coders/$(DEPDIR)/ycbcr_la-ycbcr.Tpo -c -o coders/ycbcr_la-ycbcr.lo `test -f 'coders/ycbcr.c' || echo '$(srcdir)/'`coders/ycbcr.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) coders/$(DEPDIR)/ycbcr_la-ycbcr.Tpo coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo
@@ -12370,6 +12413,10 @@
 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
 	$(am__post_remove_distdir)
 
+dist-zstd: distdir
+	tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+	$(am__post_remove_distdir)
+
 dist-tarZ: distdir
 	@echo WARNING: "Support for distribution archives compressed with" \
 		       "legacy program 'compress' is deprecated." >&2
@@ -12411,6 +12458,8 @@
 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
+	*.tar.zst*) \
+	  zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
 	esac
 	chmod -R a-w $(distdir)
 	chmod u+w $(distdir)
@@ -12848,6 +12897,7 @@
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.Plo
+	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.Plo
 	-rm -f coders/$(DEPDIR)/aai_la-aai.Plo
@@ -12984,6 +13034,7 @@
 	-rm -f coders/$(DEPDIR)/xps_la-xps.Plo
 	-rm -f coders/$(DEPDIR)/xtrn_la-xtrn.Plo
 	-rm -f coders/$(DEPDIR)/xwd_la-xwd.Plo
+	-rm -f coders/$(DEPDIR)/yaml_la-yaml.Plo
 	-rm -f coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo
 	-rm -f coders/$(DEPDIR)/yuv_la-yuv.Plo
 	-rm -f filters/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.Plo
@@ -13340,6 +13391,7 @@
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xps.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xtrn.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-xwd.Plo
+	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yaml.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-ycbcr.Plo
 	-rm -f coders/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-yuv.Plo
 	-rm -f coders/$(DEPDIR)/aai_la-aai.Plo
@@ -13476,6 +13528,7 @@
 	-rm -f coders/$(DEPDIR)/xps_la-xps.Plo
 	-rm -f coders/$(DEPDIR)/xtrn_la-xtrn.Plo
 	-rm -f coders/$(DEPDIR)/xwd_la-xwd.Plo
+	-rm -f coders/$(DEPDIR)/yaml_la-yaml.Plo
 	-rm -f coders/$(DEPDIR)/ycbcr_la-ycbcr.Plo
 	-rm -f coders/$(DEPDIR)/yuv_la-yuv.Plo
 	-rm -f filters/$(DEPDIR)/MagickCore_libMagickCore_@MAGICK_MAJOR_VERSION@_@MAGICK_ABI_SUFFIX@_la-analyze.Plo
@@ -13523,7 +13576,7 @@
 	clean-libtool clean-local clean-noinstLTLIBRARIES cscope \
 	cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
 	dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
-	dist-zip distcheck distclean distclean-compile \
+	dist-zip dist-zstd distcheck distclean distclean-compile \
 	distclean-generic distclean-hdr distclean-libtool \
 	distclean-local distclean-tags distcleancheck distdir \
 	distuninstallcheck dvi dvi-am html html-am html-local info \
diff --git a/NOTICE b/NOTICE
index 967481d..b61e063 100644
--- a/NOTICE
+++ b/NOTICE
@@ -2,7 +2,7 @@
 
 1. ImageMagick copyright:
 
-Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization dedicated
+Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated
 to making software imaging solutions freely available.
 
 You may not use this file except in compliance with the License. You may obtain
diff --git a/PerlMagick/Magick.pm b/PerlMagick/Magick.pm
index 7a0aa98..ab75eb4 100644
--- a/PerlMagick/Magick.pm
+++ b/PerlMagick/Magick.pm
@@ -1,6 +1,6 @@
 package Image::Magick;
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs
index 8a66b55..1a307ea 100644
--- a/PerlMagick/Magick.xs
+++ b/PerlMagick/Magick.xs
@@ -23,7 +23,7 @@
 %                             February 1997                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -904,7 +904,7 @@
         *head,
         *previous;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -1635,7 +1635,7 @@
           long
             index;
 
-          register Quantum
+          Quantum
             *q;
 
           CacheView
@@ -1872,7 +1872,7 @@
           PixelInfo
             pixel;
 
-          register Quantum
+          Quantum
             *q;
 
           CacheView
@@ -2424,7 +2424,7 @@
   char
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0 ; (c=(*q)) != 0; i++)
@@ -2503,7 +2503,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -2591,7 +2591,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -2828,10 +2828,10 @@
     Image
       *image;
 
-    register char
+    char
       **p;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -2988,7 +2988,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -3226,7 +3226,7 @@
     PERL_UNUSED_VAR(ref);
     if (magick_registry != (SplayTreeInfo *) NULL)
       {
-        register Image
+        Image
           *p;
 
         ResetSplayTreeIterator(magick_registry);
@@ -3373,7 +3373,7 @@
     MetricType
       metric;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -3563,7 +3563,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -3720,7 +3720,7 @@
     LayerMethod
       method;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -3929,7 +3929,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -4020,7 +4020,7 @@
     MagickEvaluateOperator
       op;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -4224,7 +4224,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -4287,7 +4287,7 @@
     count=0;
     for ( ; image; image=image->next)
     {
-      register ssize_t
+      ssize_t
         j;
 
       channel_features=GetImageFeatures(image,distance,exception);
@@ -4356,7 +4356,7 @@
     PixelInfo
       background_color;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -4494,7 +4494,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -4655,7 +4655,7 @@
     long
       j;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -5271,7 +5271,7 @@
                 x,
                 y;
 
-              register const Quantum
+              const Quantum
                 *p;
 
               CacheView
@@ -5537,7 +5537,7 @@
                 x,
                 y;
 
-              register const Quantum
+              const Quantum
                 *p;
 
               if (image == (Image *) NULL)
@@ -6399,7 +6399,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -6515,10 +6515,10 @@
     RectangleInfo
       region;
 
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -6716,7 +6716,7 @@
     RectangleInfo
       region;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -6954,7 +6954,7 @@
       *image,
       *next;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -7073,7 +7073,7 @@
     LayerMethod
       method;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -7720,7 +7720,7 @@
       geometry,
       region_info;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -8727,10 +8727,10 @@
                   MagickBooleanType
                     sync;
 
-                  register ssize_t
+                  ssize_t
                     x;
 
-                  register Quantum
+                  Quantum
                     *q;
 
                   ssize_t
@@ -11585,10 +11585,10 @@
               if ((flags & SigmaValue) == 0)
                 geometry_info.sigma=geometry_info.rho;
               if ((flags & XiValue) == 0)
-                geometry_info.xi=2.0*sqrt(geometry_info.rho*geometry_info.rho+
+                geometry_info.xi=1.0*sqrt(geometry_info.rho*geometry_info.rho+
                   geometry_info.sigma*geometry_info.sigma);
               if ((flags & PsiValue) == 0)
-                geometry_info.psi=0.5*sqrt(geometry_info.rho*geometry_info.rho+
+                geometry_info.psi=0.25*sqrt(geometry_info.rho*geometry_info.rho+
                   geometry_info.sigma*geometry_info.sigma);
             }
           if (attribute_flag[1] != 0)
@@ -11685,7 +11685,7 @@
     MontageInfo
       *montage_info;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -12090,7 +12090,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -12315,10 +12315,10 @@
     MagickBooleanType
       status;
 
-    register char
+    char
       **p;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -12611,7 +12611,7 @@
     PixelInfo
       color;
 
-    register ssize_t
+    ssize_t
       i;
 
     SV
@@ -12697,7 +12697,7 @@
     PixelInfo
       target_color;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -12764,7 +12764,7 @@
     ExceptionInfo
       *exception;
 
-    register ssize_t
+    ssize_t
       i;
 
     SV
@@ -12909,7 +12909,7 @@
     MagickStatusType
       flags;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -13320,7 +13320,7 @@
     MagickStatusType
       flags;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -13667,7 +13667,7 @@
     ExceptionInfo
       *exception;
 
-    register ssize_t
+    ssize_t
       i;
 
     SV
@@ -13754,7 +13754,7 @@
     ExceptionInfo
       *exception;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -13832,10 +13832,10 @@
     MagickBooleanType
       status;
 
-    register char
+    char
       **p;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -14034,7 +14034,7 @@
     ExceptionInfo
       *exception;
 
-    register ssize_t
+    ssize_t
       i;
 
     SV
@@ -14089,7 +14089,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -14168,10 +14168,10 @@
     RectangleInfo
       region;
 
-    register ssize_t
+    ssize_t
       i;
 
-    register Quantum
+    Quantum
       *q;
 
     ssize_t
@@ -14325,7 +14325,7 @@
         double
           scale;
 
-        register ssize_t
+        ssize_t
           i;
 
         i=0;
@@ -14416,10 +14416,10 @@
     RectangleInfo
       region;
 
-    register ssize_t
+    ssize_t
       i;
 
-    register Quantum
+    Quantum
       *q;
 
     struct PackageInfo
@@ -14574,7 +14574,7 @@
         double
           scale;
 
-        register ssize_t
+        ssize_t
           i,
           n,
           number_pixels;
@@ -14669,7 +14669,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -14884,7 +14884,7 @@
     count=0;
     for ( ; image; image=image->next)
     {
-      register size_t
+      size_t
         i;
 
       channel_statistics=GetImageStatistics(image,exception);
@@ -15010,7 +15010,7 @@
       *image,
       *next;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
diff --git a/PerlMagick/Makefile.PL.in b/PerlMagick/Makefile.PL.in
index 64d82db..61d65e3 100644
--- a/PerlMagick/Makefile.PL.in
+++ b/PerlMagick/Makefile.PL.in
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/Makefile.am b/PerlMagick/Makefile.am
index 2cfc6ed49..9ffd8b2 100644
--- a/PerlMagick/Makefile.am
+++ b/PerlMagick/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/check.sh.in b/PerlMagick/check.sh.in
index 418f843..fc86227 100644
--- a/PerlMagick/check.sh.in
+++ b/PerlMagick/check.sh.in
@@ -1,5 +1,5 @@
 #!/bin/sh
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/default/Magick.pm.in b/PerlMagick/default/Magick.pm.in
index 0fdd8ae..4481994 100644
--- a/PerlMagick/default/Magick.pm.in
+++ b/PerlMagick/default/Magick.pm.in
@@ -1,6 +1,6 @@
 package Image::Magick;
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/default/Makefile.PL.in b/PerlMagick/default/Makefile.PL.in
index 4cbdaa5..6a4271e 100644
--- a/PerlMagick/default/Makefile.PL.in
+++ b/PerlMagick/default/Makefile.PL.in
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/demo/demo.pl b/PerlMagick/demo/demo.pl
index 27cdfa3..85a7626 100644
--- a/PerlMagick/demo/demo.pl
+++ b/PerlMagick/demo/demo.pl
@@ -85,6 +85,12 @@
 $example->AutoThreshold();
 push(@$images,$example);
 
+print "Blilateral Blur...\n";
+$example=$model->Clone();
+$example->Label('Blilateral Blur');
+$example->BilateralBlur('8x8');
+push(@$images,$example);
+
 print "Blur...\n";
 $example=$model->Clone();
 $example->Label('Blur');
diff --git a/PerlMagick/demo/shadow-text.pl b/PerlMagick/demo/shadow-text.pl
index b35af1f..e32f3a9 100644
--- a/PerlMagick/demo/shadow-text.pl
+++ b/PerlMagick/demo/shadow-text.pl
@@ -4,7 +4,7 @@
 #
 use Image::Magick;
 
-$image=Image::Magick->new(size=>'500x120');
+$image=Image::Magick->new(size=>'525x125');
 $image->Read('xc:white');
 $image->Annotate(fill=>'rgba(100,100,100,0.8)',pointsize=>60,
   text=>'Works like magick!',geometry=>'+8+90');
diff --git a/PerlMagick/quantum/Makefile.PL.in b/PerlMagick/quantum/Makefile.PL.in
index a2023f4..a7d2392 100644
--- a/PerlMagick/quantum/Makefile.PL.in
+++ b/PerlMagick/quantum/Makefile.PL.in
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/quantum/quantum.pm b/PerlMagick/quantum/quantum.pm
index c48dd29..74f58a3 100644
--- a/PerlMagick/quantum/quantum.pm
+++ b/PerlMagick/quantum/quantum.pm
@@ -1,6 +1,6 @@
 package Image::Magick::Q16HDRI;
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/quantum/quantum.pm.in b/PerlMagick/quantum/quantum.pm.in
index 5f6ca50..7a854da 100644
--- a/PerlMagick/quantum/quantum.pm.in
+++ b/PerlMagick/quantum/quantum.pm.in
@@ -1,6 +1,6 @@
 package Image::Magick::@MAGICK_ABI_SUFFIX@;
 
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/quantum/quantum.xs.in b/PerlMagick/quantum/quantum.xs.in
index 29ac323..0c2e19b 100644
--- a/PerlMagick/quantum/quantum.xs.in
+++ b/PerlMagick/quantum/quantum.xs.in
@@ -23,7 +23,7 @@
 %                             February 1997                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -904,7 +904,7 @@
         *head,
         *previous;
 
-      register ssize_t
+      ssize_t
         i;
 
       ssize_t
@@ -1635,7 +1635,7 @@
           long
             index;
 
-          register Quantum
+          Quantum
             *q;
 
           CacheView
@@ -1869,7 +1869,7 @@
           PixelInfo
             pixel;
 
-          register Quantum
+          Quantum
             *q;
 
           CacheView
@@ -2421,7 +2421,7 @@
   char
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0 ; (c=(*q)) != 0; i++)
@@ -2500,7 +2500,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -2588,7 +2588,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -2825,10 +2825,10 @@
     Image
       *image;
 
-    register char
+    char
       **p;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -2985,7 +2985,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -3223,7 +3223,7 @@
     PERL_UNUSED_VAR(ref);
     if (magick_registry != (SplayTreeInfo *) NULL)
       {
-        register Image
+        Image
           *p;
 
         ResetSplayTreeIterator(magick_registry);
@@ -3370,7 +3370,7 @@
     MetricType
       metric;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -3560,7 +3560,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -3717,7 +3717,7 @@
     LayerMethod
       method;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -3926,7 +3926,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -4017,7 +4017,7 @@
     MagickEvaluateOperator
       op;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -4221,7 +4221,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -4284,7 +4284,7 @@
     count=0;
     for ( ; image; image=image->next)
     {
-      register ssize_t
+      ssize_t
         j;
 
       channel_features=GetImageFeatures(image,distance,exception);
@@ -4353,7 +4353,7 @@
     PixelInfo
       background_color;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -4491,7 +4491,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -4653,7 +4653,7 @@
     long
       j;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -5270,7 +5270,7 @@
                 x,
                 y;
 
-              register const Quantum
+              const Quantum
                 *p;
 
               CacheView
@@ -5536,7 +5536,7 @@
                 x,
                 y;
 
-              register const Quantum
+              const Quantum
                 *p;
 
               if (image == (Image *) NULL)
@@ -6398,7 +6398,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -6514,10 +6514,10 @@
     RectangleInfo
       region;
 
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -6715,7 +6715,7 @@
     RectangleInfo
       region;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -6953,7 +6953,7 @@
       *image,
       *next;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -7072,7 +7072,7 @@
     LayerMethod
       method;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -7719,7 +7719,7 @@
       geometry,
       region_info;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -8730,10 +8730,10 @@
                   MagickBooleanType
                     sync;
 
-                  register ssize_t
+                  ssize_t
                     x;
 
-                  register Quantum
+                  Quantum
                     *q;
 
                   ssize_t
@@ -11591,10 +11591,10 @@
               if ((flags & SigmaValue) == 0)
                 geometry_info.sigma=geometry_info.rho;
               if ((flags & XiValue) == 0)
-                geometry_info.xi=2.0*sqrt(geometry_info.rho*geometry_info.rho+
+                geometry_info.xi=1.0*sqrt(geometry_info.rho*geometry_info.rho+
                   geometry_info.sigma*geometry_info.sigma);
               if ((flags & PsiValue) == 0)
-                geometry_info.xi=0.5*sqrt(geometry_info.rho*geometry_info.rho+
+                geometry_info.xi=0.25*sqrt(geometry_info.rho*geometry_info.rho+
                   geometry_info.sigma*geometry_info.sigma);
             }
           if (attribute_flag[1] != 0)
@@ -11691,7 +11691,7 @@
     PixelInfo
       transparent_color;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -12096,7 +12096,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -12350,7 +12350,7 @@
     count=0;
     for ( ; image; image=image->next)
     {
-      register size_t
+      size_t
         i;
 
       channel_phash=GetImagePerceptualHash(image,exception);
@@ -12370,7 +12370,7 @@
           channel_phash[0].number_colorspaces*(i+1)*count);
         for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
         {
-          register ssize_t
+          ssize_t
             k;
 
           for (k=0; k < (ssize_t) channel_phash[0].number_colorspaces; k++)
@@ -12432,10 +12432,10 @@
     MagickBooleanType
       status;
 
-    register char
+    char
       **p;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -12728,7 +12728,7 @@
     PixelInfo
       color;
 
-    register ssize_t
+    ssize_t
       i;
 
     SV
@@ -12814,7 +12814,7 @@
     PixelInfo
       target_color;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -12881,7 +12881,7 @@
     ExceptionInfo
       *exception;
 
-    register ssize_t
+    ssize_t
       i;
 
     SV
@@ -13026,7 +13026,7 @@
     MagickStatusType
       flags;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -13437,7 +13437,7 @@
     MagickStatusType
       flags;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -13784,7 +13784,7 @@
     ExceptionInfo
       *exception;
 
-    register ssize_t
+    ssize_t
       i;
 
     SV
@@ -13871,7 +13871,7 @@
     ExceptionInfo
       *exception;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -13949,10 +13949,10 @@
     MagickBooleanType
       status;
 
-    register char
+    char
       **p;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -14151,7 +14151,7 @@
     ExceptionInfo
       *exception;
 
-    register ssize_t
+    ssize_t
       i;
 
     SV
@@ -14206,7 +14206,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     struct PackageInfo
@@ -14285,10 +14285,10 @@
     RectangleInfo
       region;
 
-    register ssize_t
+    ssize_t
       i;
 
-    register Quantum
+    Quantum
       *q;
 
     ssize_t
@@ -14442,7 +14442,7 @@
         double
           scale;
 
-        register ssize_t
+        ssize_t
           i;
 
         i=0;
@@ -14533,10 +14533,10 @@
     RectangleInfo
       region;
 
-    register ssize_t
+    ssize_t
       i;
 
-    register Quantum
+    Quantum
       *q;
 
     struct PackageInfo
@@ -14691,7 +14691,7 @@
         double
           scale;
 
-        register ssize_t
+        ssize_t
           i,
           n,
           number_pixels;
@@ -14786,7 +14786,7 @@
     Image
       *image;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
@@ -15001,7 +15001,7 @@
     count=0;
     for ( ; image; image=image->next)
     {
-      register size_t
+      size_t
         i;
 
       channel_statistics=GetImageStatistics(image,exception);
@@ -15128,7 +15128,7 @@
       *image,
       *next;
 
-    register ssize_t
+    ssize_t
       i;
 
     ssize_t
diff --git a/PerlMagick/t/blob.t b/PerlMagick/t/blob.t
index 58a078a..cfa5746 100644
--- a/PerlMagick/t/blob.t
+++ b/PerlMagick/t/blob.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/filter.t b/PerlMagick/t/filter.t
index 6682c7a..96fa8d2 100644
--- a/PerlMagick/t/filter.t
+++ b/PerlMagick/t/filter.t
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/getattribute.t b/PerlMagick/t/getattribute.t
index 6e61d97..618c89e 100644
--- a/PerlMagick/t/getattribute.t
+++ b/PerlMagick/t/getattribute.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/montage.t b/PerlMagick/t/montage.t
index 62aed2c..0880b92 100644
--- a/PerlMagick/t/montage.t
+++ b/PerlMagick/t/montage.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/ping.t b/PerlMagick/t/ping.t
index fa3cd33..1a63bd2 100644
--- a/PerlMagick/t/ping.t
+++ b/PerlMagick/t/ping.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/read.t b/PerlMagick/t/read.t
index 8d39441..80b0f0f 100644
--- a/PerlMagick/t/read.t
+++ b/PerlMagick/t/read.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/setattribute.t b/PerlMagick/t/setattribute.t
index 8215e4a..d5aac6f 100644
--- a/PerlMagick/t/setattribute.t
+++ b/PerlMagick/t/setattribute.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/subroutines.pl b/PerlMagick/t/subroutines.pl
index ad30560..9a88a72 100644
--- a/PerlMagick/t/subroutines.pl
+++ b/PerlMagick/t/subroutines.pl
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/PerlMagick/t/write.t b/PerlMagick/t/write.t
index 74da704..d26412a 100644
--- a/PerlMagick/t/write.t
+++ b/PerlMagick/t/write.t
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/README.md b/README.md
index 297d2ee..9161656 100644
--- a/README.md
+++ b/README.md
@@ -20,9 +20,9 @@
 
 The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to prevent security vulnerabilities.
 
-The current release is the ImageMagick 7.0.9 series. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.
+The current release is the ImageMagick 7.0.10 series. It runs on Linux, Windows, Mac Os X, iOS, Android OS, and others.
 
-The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is https://github.com/ImageMagick. We maintain a source code mirror at https://gitlab.com/ImageMagick.
+The authoritative ImageMagick web site is https://imagemagick.org. The authoritative source code repository is https://github.com/ImageMagick/ImageMagick.
 
 We continue to maintain the legacy release of ImageMagick, version 6, at https://legacy.imagemagick.org.
 
@@ -51,6 +51,7 @@
 * [Perceptual hash](http://www.fmwconcepts.com/misc_tests/perceptual_hash_test_results_510/index.html): maps visually identical images to the same or similar hash-- useful in image retrieval, authentication, indexing, or copy detection as well as digital watermarking.
 * [Complex text layout](https://en.wikipedia.org/wiki/Complex_text_layout) bidirectional text support and shaping.
 * [Color management](https://imagemagick.org/script/color-management.php): accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.
+* [Bilateral Blur](https://imagemagick.org/script/command-line-options.php#bilateral-blur): non-linear, edge-preserving, and noise-reducing smoothing filter.
 * [High dynamic-range images](https://imagemagick.org/script/high-dynamic-range.php): accurately represent the wide range of intensity levels found in real scenes ranging from the brightest direct sunlight to the deepest darkest shadows.
 * [Encipher or decipher an image](https://imagemagick.org/script/cipher.php): convert ordinary images into unintelligible gibberish and back again.
 * [Virtual pixel support](https://imagemagick.org/script/architecture.php#virtual-pixels): convenient access to pixels outside the image region.
@@ -64,16 +65,15 @@
 
 #### News
 
-Now that ImageMagick [version 7](https://imagemagick.org) is released, we continue to maintain the legacy release of ImageMagick, [version 6](https://legacy.imagemagick.org). Learn how ImageMagick version 7 differs from previous versions with our [porting guide](https://imagemagick.org/script/porting.php).
-
 ImageMagick best practices **strongly** encourages you to configure a [security policy](https://imagemagick.org/script/security-policy.php) that suits your local environment.
 
-As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace. Gray is non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).
+Now that ImageMagick version 7 is released, we continue to maintain the legacy release of ImageMagick, version 6, at https://legacy.imagemagick.org. Learn how ImageMagick version 7 differs from previous versions with our [porting guide](https://imagemagick.org/script/porting.php).
 
 Want more performance from ImageMagick? Try these options:
 
- * Add more memory to your system, see the pixel cache;
- * Add more cores to your system, see threads of execution support;
- * push large images to a solid-state drive, see large image support.
+* add more memory to your system, see the pixel cache;
+* add more cores to your system, see threads of execution support;
+* reduce lock contention with the tcmalloc memory allocation library;
+* push large images to a solid-state drive, see large image support.
 
 If these options are prohibitive, you can reduce the quality of the image results. The default build is Q16 HDRI. If you disable HDRI, you use half the memory and instead of predominately floating point operations, you use the typically more efficient integer operations. The tradeoff is reduced precision and you cannot process out of range pixel values (e.g. negative). If you build the Q8 non-HDRI version of ImageMagick, you again reduce the memory requirements in half-- and once again there is a tradeoff, even less precision and no out of range pixel values. For a Q8 non-HDRI build of ImageMagick, use these configure script options: --with-quantum-depth=8 --disable-hdri.
diff --git a/README.txt b/README.txt
index db42598..d27506e 100644
--- a/README.txt
+++ b/README.txt
@@ -30,12 +30,12 @@
   that includes memory error and thread data race detection to prevent
   security vulnerabilities.
 
-  The current release is the ImageMagick 7.0.9-* series. It runs on Linux,
+  The current release is the ImageMagick 7.0.10-* series. It runs on Linux,
   Windows, Mac Os X, iOS, Android OS, and others.
 
   The authoritative ImageMagick web site is https://imagemagick.org. The
-  authoritative source code repository is https://github.com/ImageMagick. We
-  maintain a source code mirror at https://gitlab.com/ImageMagick.
+  authoritative source code repository is
+  https://github.com/ImageMagick/ImageMagick.
 
   We continue to maintain the legacy release of ImageMagick, version 6,
   at https://legacy.imagemagick.org.
@@ -78,6 +78,8 @@
       * Color management: accurate color management with color profiles or in
         lieu of-- built-in gamma compression or expansion as demanded by the
         colorspace.
+      * Bilateral blur: non-linear, edge-preserving, and noise-reducing
+        smoothing filter.
       * High dynamic-range images: accurately represent the wide range of
         intensity levels found in real scenes ranging from the brightest direct
         sunlight to the deepest darkest shadows.
@@ -110,23 +112,20 @@
 
 News
 
+  ImageMagick best practices strongly encourages you to configure a security
+  policy that suits your local environment.
+
   Now that ImageMagick version 7 is released, we continue
   to maintain the legacy release of ImageMagick, version 6, at
   https://legacy.imagemagick.org. Learn how ImageMagick version 7 differs
   from previous versions with our porting guide.
 
-  ImageMagick best practices strongly encourages you to configure a security
-  policy that suits your local environment.
-
-  As an analog to linear (RGB) and non-linear (sRGB) color colorspaces, as
-  of ImageMagick 7.0.7-17, we introduce the LinearGray colorspace. Gray is
-  non-linear grayscale and LinearGray is linear (e.g. -colorspace linear-gray).
-
   Want more performance from ImageMagick? Try these options:
 
-    Add more memory to your system, see the pixel cache; Add more cores to
-    your system, see threads of execution support; push large images to a
-    solid-state drive, see large image support.
+    * add more memory to your system, see the pixel cache;
+    * add more cores to your system, see threads of execution support;
+    * reduce lock contention with the tcmalloc memory allocation library;
+    * push large images to a solid-state drive, see large image support.
 
   If these options are prohibitive, you can reduce the quality of the image
   results. The default build is Q16 HDRI. If you disable HDRI, you use
diff --git a/aclocal.m4 b/aclocal.m4
index 4420eb0..4736e0f 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@
 [am__api_version='1.16'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.16.1], [],
+m4_if([$1], [1.16.2], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,12 +51,12 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.2])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -118,7 +118,7 @@
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -170,7 +170,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -201,7 +201,7 @@
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -392,7 +392,7 @@
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -431,7 +431,9 @@
   done
   if test $am_rc -ne 0; then
     AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
-    for automatic dependency tracking.  Try re-running configure with the
+    for automatic dependency tracking.  If GNU make was not used, consider
+    re-running the configure script with MAKE="gmake" (or whatever is
+    necessary).  You can also try re-running configure with the
     '--disable-dependency-tracking' option to at least be able to build
     the package (albeit without support for automatic dependency tracking).])
   fi
@@ -457,7 +459,7 @@
      [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
 
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -481,7 +483,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -678,7 +680,7 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -699,7 +701,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -721,7 +723,7 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -756,7 +758,7 @@
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -799,7 +801,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -838,7 +840,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -867,7 +869,7 @@
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -914,7 +916,7 @@
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -933,7 +935,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1014,7 +1016,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1074,7 +1076,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1102,7 +1104,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1121,7 +1123,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/coders/Android.bp b/coders/Android.bp
index 6d3fb89..3de94b0 100644
--- a/coders/Android.bp
+++ b/coders/Android.bp
@@ -12,6 +12,17 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "external_ImageMagick_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    //   SPDX-license-identifier-MIT
+    //   legacy_notice
+    default_applicable_licenses: ["external_ImageMagick_license"],
+}
+
 cc_library_static {
     name: "Magick_coders",
 
diff --git a/coders/Makefile.am b/coders/Makefile.am
index b909440..07a36a4 100644
--- a/coders/Makefile.am
+++ b/coders/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -358,6 +358,8 @@
 	coders/xtrn.c \
 	coders/xtrn.h \
 	coders/xwd.h \
+	coders/yaml.c \
+	coders/yaml.h \
 	coders/ycbcr.c \
 	coders/ycbcr.h \
 	coders/yuv.c \
@@ -520,6 +522,7 @@
 	coders/xps.h \
 	coders/xtrn.h \
 	coders/xwd.h \
+	coders/yaml.h \
 	coders/ycbcr.h \
 	coders/yuv.h
 
@@ -639,6 +642,7 @@
 	coders/xpm.la \
 	coders/xps.la \
 	coders/xtrn.la \
+	coders/yaml.la \
 	coders/ycbcr.la \
 	coders/yuv.la \
 	$(MAGICKCORE_DPS_MODULES) \
@@ -1459,6 +1463,12 @@
 coders_xwd_la_LDFLAGS      = $(MODULECOMMONFLAGS)
 coders_xwd_la_LIBADD       = $(MAGICKCORE_LIBS) $(X11_LIBS)
 
+# YAML coder module
+coders_yaml_la_SOURCES     = coders/yaml.c
+coders_yaml_la_CPPFLAGS    = $(MAGICK_CODER_CPPFLAGS)
+coders_yaml_la_LDFLAGS     = $(MODULECOMMONFLAGS)
+coders_yaml_la_LIBADD      = $(MAGICKCORE_LIBS)
+
 # YCBCR coder module
 coders_ycbcr_la_SOURCES    = coders/ycbcr.c
 coders_ycbcr_la_CPPFLAGS   = $(MAGICK_CODER_CPPFLAGS)
diff --git a/coders/aai.c b/coders/aai.c
index 3e684fe..a06bf52 100644
--- a/coders/aai.c
+++ b/coders/aai.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -101,13 +101,13 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -334,13 +334,13 @@
   MagickOffsetType
     scene;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
diff --git a/coders/aai.h b/coders/aai.h
index d9157c0..1fa1b59 100644
--- a/coders/aai.h
+++ b/coders/aai.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/art.c b/coders/art.c
index 1872dc7..5d53e32 100644
--- a/coders/art.c
+++ b/coders/art.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -163,7 +163,7 @@
     const void
       *stream;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -289,7 +289,7 @@
   QuantumInfo
     *quantum_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
   size_t
diff --git a/coders/art.h b/coders/art.h
index 854d4e3..c9c92f0 100644
--- a/coders/art.h
+++ b/coders/art.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ashlar.c b/coders/ashlar.c
index 1ba999f..02710fc 100644
--- a/coders/ashlar.c
+++ b/coders/ashlar.c
@@ -17,7 +17,7 @@
 %                                 July 2020                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -230,7 +230,7 @@
   y=0;
   extent=0;
   node=first;
-  while (node->x < (x+width))
+  while (node->x < (ssize_t) (x+width))
   {
     if (node->y > y)
       {
@@ -283,9 +283,9 @@
       tile.y=0;
       return(tile);
     }
-  tile.x=(ssize_t) SSIZE_MAX;
-  tile.y=(ssize_t) SSIZE_MAX;
-  min_excess=(ssize_t) SSIZE_MAX;
+  tile.x=(ssize_t) LONG_MAX;
+  tile.y=(ssize_t) LONG_MAX;
+  min_excess=(ssize_t) LONG_MAX;
   node=ashlar_info->current;
   previous=(&ashlar_info->current);
   while ((width+node->x) <= ashlar_info->width)
@@ -374,7 +374,7 @@
   */
   tile=AssignBestTileLocation(ashlar_info,width,height);
   if ((tile.previous == (NodeInfo **) NULL) ||
-      ((tile.y+height) > (ssize_t) ashlar_info->height) ||
+      ((tile.y+(ssize_t) height) > (ssize_t) ashlar_info->height) ||
       (ashlar_info->free == (NodeInfo *) NULL))
     {
       tile.previous=(NodeInfo **) NULL;
@@ -400,7 +400,7 @@
        current=next;
      }
    while ((current->next != (NodeInfo *) NULL) &&
-          (current->next->x <= (tile.x+width)))
+          (current->next->x <= (tile.x+(ssize_t) width)))
    {
      /*
        Push current node to free list.
@@ -411,7 +411,7 @@
      current=next;
    }
    node->next=current;
-   if (current->x < (tile.x+width))
+   if (current->x < (tile.x+(ssize_t) width))
      current->x=(ssize_t) (tile.x+width);
    return(tile);
 }
@@ -448,7 +448,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -472,8 +472,8 @@
         tiles[i].y=(ssize_t) tile_info.y;
         if (tile_info.previous == (NodeInfo **) NULL)
           {
-            tiles[i].x=(ssize_t) SSIZE_MAX;
-            tiles[i].y=(ssize_t) SSIZE_MAX;
+            tiles[i].x=(ssize_t) LONG_MAX;
+            tiles[i].y=(ssize_t) LONG_MAX;
           }
       }
   }
@@ -481,8 +481,8 @@
   status=MagickTrue;
   for (i=0; i < (ssize_t) number_tiles; i++)
   {
-    tiles[i].order=(ssize_t) ((tiles[i].x != (ssize_t) SSIZE_MAX) ||
-      (tiles[i].y != (ssize_t) SSIZE_MAX) ? 1 : 0);
+    tiles[i].order=(ssize_t) ((tiles[i].x != (ssize_t) LONG_MAX) ||
+      (tiles[i].y != (ssize_t) LONG_MAX) ? 1 : 0);
     if (tiles[i].order == 0)
       status=MagickFalse;
   }
@@ -580,7 +580,7 @@
   value=GetImageOption(image_info,"ashlar:best-fit");
   for (i=20; i > 0; i--)
   {
-    register ssize_t
+    ssize_t
       j;
 
     n=0;
@@ -606,7 +606,7 @@
     ashlar_info.head.y=0;
     ashlar_info.head.next=(&ashlar_info.sentinal);
     ashlar_info.sentinal.x=(ssize_t) geometry.width;
-    ashlar_info.sentinal.y=(ssize_t) SSIZE_MAX;
+    ashlar_info.sentinal.y=(ssize_t) LONG_MAX;
     ashlar_info.sentinal.next=(NodeInfo *) NULL;
     status=PackAshlarTiles(&ashlar_info,tiles,(size_t) n);
     if (status != MagickFalse)
@@ -623,8 +623,8 @@
     Image
       *tile_image;
 
-    if ((tiles[i].x == (ssize_t) SSIZE_MAX) ||
-        (tiles[i].y == (ssize_t) SSIZE_MAX))
+    if ((tiles[i].x == (ssize_t) LONG_MAX) ||
+        (tiles[i].y == (ssize_t) LONG_MAX))
       continue;
     tile_image=ResizeImage(GetImageFromList(image,tiles[i].id),(size_t)
       (tiles[i].width-2*geometry.x),(size_t) (tiles[i].height-2*geometry.y),
diff --git a/coders/ashlar.h b/coders/ashlar.h
index 6a081b2..e2f35fc 100644
--- a/coders/ashlar.h
+++ b/coders/ashlar.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/avs.c b/coders/avs.c
index 3834419..e7a5d2b 100644
--- a/coders/avs.c
+++ b/coders/avs.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -103,13 +103,13 @@
   MemoryInfo
     *pixel_info;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -336,13 +336,13 @@
   MemoryInfo
     *pixel_info;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *magick_restrict q;
 
   size_t
diff --git a/coders/avs.h b/coders/avs.h
index 0f17935..080aee3 100644
--- a/coders/avs.h
+++ b/coders/avs.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/bgr.c b/coders/bgr.c
index 8987473..92f777e 100644
--- a/coders/bgr.c
+++ b/coders/bgr.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -118,7 +118,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -231,13 +231,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -311,13 +311,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -410,13 +410,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -463,13 +463,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -516,13 +516,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -577,13 +577,13 @@
           {
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -669,13 +669,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -740,13 +740,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -811,13 +811,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -884,13 +884,13 @@
             stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -1165,7 +1165,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1193,7 +1193,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1239,7 +1239,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1259,7 +1259,7 @@
           }
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1279,7 +1279,7 @@
           }
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1301,7 +1301,7 @@
           {
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1343,7 +1343,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1369,7 +1369,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1395,7 +1395,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1424,7 +1424,7 @@
               return(status);
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/bgr.h b/coders/bgr.h
index 866c2c7..4e56c35 100644
--- a/coders/bgr.h
+++ b/coders/bgr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/bmp.c b/coders/bmp.c
index d7cb828..b07dc5f 100644
--- a/coders/bmp.c
+++ b/coders/bmp.c
@@ -18,7 +18,7 @@
 %                               December 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -206,11 +206,11 @@
     byte,
     count;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -383,14 +383,14 @@
   MagickBooleanType
     status;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -533,14 +533,14 @@
   Quantum
     index;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -1060,7 +1060,7 @@
     (void) memset(&quantum_bits,0,sizeof(quantum_bits));
     if ((bmp_info.bits_per_pixel == 16) || (bmp_info.bits_per_pixel == 32))
       {
-        register unsigned int
+        unsigned int
           sample;
 
         /*
@@ -1664,14 +1664,14 @@
   MemoryInfo
     *pixel_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1705,8 +1705,8 @@
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
-  if (((image->columns << 3) != (int) (image->columns << 3)) ||
-      ((image->rows << 3) != (int) (image->rows << 3)))
+  if (((image->columns << 3) != (size_t) ((int) (image->columns << 3))) ||
+      ((image->rows << 3) != (size_t) ((int) (image->rows << 3))))
     ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
   type=4;
   if (LocaleCompare(image_info->magick,"BMP2") == 0)
diff --git a/coders/bmp.h b/coders/bmp.h
index d414f0b..ed40a5c 100644
--- a/coders/bmp.h
+++ b/coders/bmp.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/braille.c b/coders/braille.c
index 8e2e049..8f40931 100644
--- a/coders/braille.c
+++ b/coders/braille.c
@@ -15,7 +15,7 @@
 %                                February 2008                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -201,10 +201,10 @@
   Quantum
     polarity;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
diff --git a/coders/braille.h b/coders/braille.h
index c8ea23a..196983a 100644
--- a/coders/braille.h
+++ b/coders/braille.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/bytebuffer-private.h b/coders/bytebuffer-private.h
index 9d64677..ab0cbc2 100644
--- a/coders/bytebuffer-private.h
+++ b/coders/bytebuffer-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cals.c b/coders/cals.c
index 9c677d1..bd84a18 100644
--- a/coders/cals.c
+++ b/coders/cals.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -164,7 +164,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned long
@@ -397,10 +397,10 @@
   char
     pad[128];
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -438,7 +438,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/cals.h b/coders/cals.h
index f2ee57e..4568bbd 100644
--- a/coders/cals.h
+++ b/coders/cals.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/caption.c b/coders/caption.c
index 44f3b7a..67a3fb4 100644
--- a/coders/caption.c
+++ b/coders/caption.c
@@ -17,7 +17,7 @@
 %                               February 2002                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -113,7 +113,7 @@
     split,
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/caption.h b/coders/caption.h
index 32959a4..6d62c3b 100644
--- a/coders/caption.h
+++ b/coders/caption.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cin.c b/coders/cin.c
index ec466dd..b62cafd 100644
--- a/coders/cin.c
+++ b/coders/cin.c
@@ -20,7 +20,7 @@
 %                               October 2003                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -403,10 +403,10 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -921,10 +921,10 @@
   QuantumType
     quantum_type;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/cin.h b/coders/cin.h
index 31f454e..d4ebddd 100644
--- a/coders/cin.h
+++ b/coders/cin.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cip.c b/coders/cip.c
index 2050c75..e662b00 100644
--- a/coders/cip.c
+++ b/coders/cip.c
@@ -16,7 +16,7 @@
 %                                April 2004                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -169,10 +169,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
diff --git a/coders/cip.h b/coders/cip.h
index a7bb20a..0e91be5 100644
--- a/coders/cip.h
+++ b/coders/cip.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/clip.c b/coders/clip.c
index c05c4f6..14a85ec 100644
--- a/coders/clip.c
+++ b/coders/clip.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/clip.h b/coders/clip.h
index 6e09661..18c52fe 100644
--- a/coders/clip.h
+++ b/coders/clip.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/clipboard.c b/coders/clipboard.c
index e423669..d7ea803 100644
--- a/coders/clipboard.c
+++ b/coders/clipboard.c
@@ -17,7 +17,7 @@
 %                                 May 2002                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -122,22 +122,10 @@
   LPVOID
     clip_mem;
 
-  MagickBooleanType
-    status;
-
-  register ssize_t
-    x;
-
-  register Quantum
-    *q;
-
   size_t
     clip_size,
     total_size;
 
-  ssize_t
-    y;
-
   unsigned char
     offset;
 
diff --git a/coders/clipboard.h b/coders/clipboard.h
index e344ba9..f0ba1cd 100644
--- a/coders/clipboard.h
+++ b/coders/clipboard.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cmyk.c b/coders/cmyk.c
index 9641456..2b256bb 100644
--- a/coders/cmyk.c
+++ b/coders/cmyk.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -118,7 +118,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -230,13 +230,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -313,13 +313,13 @@
         {
           for (i=0; i < (ssize_t) (image->alpha_trait != UndefinedPixelTrait ? 5 : 4); i++)
           {
-            register const Quantum
+            const Quantum
               *magick_restrict p;
 
-            register Quantum
+            Quantum
               *magick_restrict q;
 
-            register ssize_t
+            ssize_t
               x;
 
             if (count != (ssize_t) length)
@@ -409,13 +409,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -461,13 +461,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -513,13 +513,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -565,13 +565,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -619,13 +619,13 @@
           {
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -710,13 +710,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -780,13 +780,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -850,13 +850,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -921,13 +921,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -994,13 +994,13 @@
             stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -1263,7 +1263,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1291,7 +1291,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1342,7 +1342,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1362,7 +1362,7 @@
           }
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1382,7 +1382,7 @@
           }
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1402,7 +1402,7 @@
           }
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1424,7 +1424,7 @@
           {
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1466,7 +1466,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1492,7 +1492,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1518,7 +1518,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1544,7 +1544,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1572,7 +1572,7 @@
               return(status);
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/cmyk.h b/coders/cmyk.h
index d8b37a8..11f82d2 100644
--- a/coders/cmyk.h
+++ b/coders/cmyk.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/coders-list.h b/coders/coders-list.h
index 37c44c4..184acc3 100644
--- a/coders/coders-list.h
+++ b/coders/coders-list.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -194,6 +194,7 @@
 #if defined(MAGICKCORE_X11_DELEGATE)
   AddMagickCoder(XWD)
 #endif
+AddMagickCoder(YAML)
 AddMagickCoder(YCBCR)
 AddMagickCoder(YUV)
 #endif
diff --git a/coders/coders-private.h b/coders/coders-private.h
index b231676..867ab7c 100644
--- a/coders/coders-private.h
+++ b/coders/coders-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/coders.h b/coders/coders.h
index 70184f3..b41829b 100644
--- a/coders/coders.h
+++ b/coders/coders.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -193,5 +193,6 @@
 #if defined(MAGICKCORE_X11_DELEGATE)
   #include "coders/xwd.h"
 #endif
+#include "coders/yaml.h"
 #include "coders/ycbcr.h"
 #include "coders/yuv.h"
diff --git a/coders/cube.c b/coders/cube.c
index 198a65f..41a8060 100644
--- a/coders/cube.c
+++ b/coders/cube.c
@@ -17,7 +17,7 @@
 %                                 July 2018                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -124,7 +124,7 @@
   MemoryInfo
     *cube_info;
 
-  register char
+  char
     *p;
 
   size_t
@@ -240,17 +240,17 @@
     }
   for (b=0; b < (ssize_t) (hald_level*hald_level); b++)
   {
-    register ssize_t
+    ssize_t
       g;
 
     if (status == MagickFalse)
       continue;
     for (g=0; g < (ssize_t) (hald_level*hald_level); g++)
     {
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         r;
 
       if (status == MagickFalse)
diff --git a/coders/cube.h b/coders/cube.h
index 7c665cd..6bc7b64 100644
--- a/coders/cube.h
+++ b/coders/cube.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/cut.c b/coders/cut.c
index c4f2768..06f4b2a 100644
--- a/coders/cut.c
+++ b/coders/cut.c
@@ -104,7 +104,7 @@
   Quantum
     index;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -265,7 +265,7 @@
     intensity,
     scale_intensity;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -347,7 +347,7 @@
   ssize_t i,j;
   ssize_t ldblk;
   unsigned char *BImgBuff=NULL,*ptrB;
-  register Quantum *q;
+  Quantum *q;
 
   /*
     Open image file.
@@ -618,7 +618,7 @@
             {
               for (i=0; i < (ssize_t)image->colors; i++)
                 {
-                  register Quantum
+                  Quantum
                     sample;
                   sample=ScaleCharToQuantum((unsigned char) i);
                   if(image->colormap[i].red!=sample) goto Finish;
diff --git a/coders/cut.h b/coders/cut.h
index d459e09..86d58fe 100644
--- a/coders/cut.h
+++ b/coders/cut.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dcm.c b/coders/dcm.c
index 447f289..25048d4 100644
--- a/coders/dcm.c
+++ b/coders/dcm.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -2841,11 +2841,11 @@
   PixelPacket
     pixel;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -3060,10 +3060,10 @@
   MagickOffsetType
     offset;
 
-  register unsigned char
+  unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -4157,10 +4157,10 @@
         }
       if ((info.samples_per_pixel > 1) && (image->interlace == PlaneInterlace))
         {
-          register ssize_t
+          ssize_t
             x;
 
-          register Quantum
+          Quantum
             *q;
 
           ssize_t
diff --git a/coders/dcm.h b/coders/dcm.h
index bad57c6..7658bbf 100644
--- a/coders/dcm.h
+++ b/coders/dcm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dds.c b/coders/dds.c
index 7db07b9..af314cb 100644
--- a/coders/dds.c
+++ b/coders/dds.c
@@ -19,7 +19,7 @@
 %                              September 2013                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1008,7 +1008,7 @@
 static MagickBooleanType SetDXT1Pixels(Image *image,ssize_t x,ssize_t y,
   DDSColors colors,size_t bits,Quantum *q)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1059,7 +1059,7 @@
       && (dds_info->ddscaps1 & DDSCAPS_TEXTURE
           || dds_info->ddscaps2 & DDSCAPS2_CUBEMAP))
     {
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -1135,10 +1135,10 @@
   DDSColors
     colors;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -1213,7 +1213,7 @@
       MagickOffsetType
         offset;
 
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -1259,10 +1259,10 @@
   DDSColors
     colors;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1363,10 +1363,10 @@
   MagickSizeType
     alpha_bits;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1472,7 +1472,7 @@
 static MagickBooleanType ReadUncompressedRGBPixels(Image *image,
   DDSInfo *dds_info,ExceptionInfo *exception)
 {
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -1545,7 +1545,7 @@
       MagickOffsetType
         offset;
   
-      register ssize_t
+      ssize_t
         i;
 
       size_t
@@ -1596,7 +1596,7 @@
 static MagickBooleanType ReadUncompressedRGBAPixels(Image *image,
   DDSInfo *dds_info,ExceptionInfo *exception)
 {
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -1955,7 +1955,7 @@
 static void RemapIndices(const ssize_t *map, const unsigned char *source,
   unsigned char *target)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i = 0; i < 16; i++)
@@ -2024,7 +2024,7 @@
   unsigned char
     codes[8];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2084,7 +2084,7 @@
      dps[16],
      f;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2413,7 +2413,7 @@
     half,
     dist;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2502,7 +2502,7 @@
   const unsigned char *color, DDSVector3 *start, DDSVector3 *end,
   unsigned char *index)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2548,7 +2548,7 @@
     row2,
     v;
 
-  register ssize_t
+  ssize_t
     i;
 
   row0.x = covariance[0];
@@ -2661,7 +2661,7 @@
 static void WriteAlphas(Image *image, const ssize_t *alphas, size_t min5,
   size_t max5, size_t min7, size_t max7)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2724,7 +2724,7 @@
 static void WriteIndices(Image *image, const DDSVector3 start,
   const DDSVector3 end, unsigned char *indices)
 {
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2805,7 +2805,7 @@
     start,
     end;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -2831,7 +2831,7 @@
   const MagickBooleanType clusterFit, const MagickBooleanType weightByAlpha,
   ExceptionInfo *exception)
 {
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -2840,7 +2840,7 @@
     bx,
     by;
 
-  register const Quantum
+  const Quantum
     *p;
 
   for (y=0; y < (ssize_t) image->rows; y+=4)
@@ -2958,10 +2958,10 @@
 
 static void WriteUncompressed(Image *image, ExceptionInfo *exception)
 {
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -3011,7 +3011,7 @@
     fast_mipmaps,
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3081,7 +3081,7 @@
   char
     software[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned int
diff --git a/coders/dds.h b/coders/dds.h
index abe4249..4d83084 100644
--- a/coders/dds.h
+++ b/coders/dds.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/debug.c b/coders/debug.c
index b8ed094..2b0edba 100644
--- a/coders/debug.c
+++ b/coders/debug.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -181,10 +181,10 @@
   PixelInfo
     pixel;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
diff --git a/coders/debug.h b/coders/debug.h
index 3a53472..739ec0a 100644
--- a/coders/debug.h
+++ b/coders/debug.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dib.c b/coders/dib.c
index 4fe1c31..bad4e5a 100644
--- a/coders/dib.c
+++ b/coders/dib.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -170,11 +170,11 @@
   ssize_t
     y;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -344,14 +344,14 @@
   ssize_t
     y;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   /*
@@ -473,16 +473,16 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -1097,14 +1097,14 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1131,8 +1131,8 @@
   status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(status);
-  if (((image->columns << 3) != (int) (image->columns << 3)) ||
-      ((image->rows << 3) != (int) (image->rows << 3)))
+  if (((image->columns << 3) != (size_t) ((int) (image->columns << 3))) ||
+      ((image->rows << 3) != (size_t) ((int) (image->rows << 3))))
     ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit");
   /*
     Initialize DIB raster file header.
@@ -1198,7 +1198,7 @@
   {
     case 1:
     {
-      register unsigned char
+      unsigned char
         bit,
         byte;
 
diff --git a/coders/dib.h b/coders/dib.h
index 1398bd6..5c0874b 100644
--- a/coders/dib.h
+++ b/coders/dib.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/djvu.c b/coders/djvu.c
index 881515c..d4c8c4e 100644
--- a/coders/djvu.c
+++ b/coders/djvu.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -428,7 +428,7 @@
                 /* old: */
                 char* r;
 #else
-                register Quantum *r;
+                Quantum *r;
                 unsigned char *s;
 #endif
                 s=q;
@@ -575,7 +575,7 @@
         /* Read one DJVU image */
         image = lc->image;
 
-        /* register Quantum *q; */
+        /* Quantum *q; */
 
         logging=LogMagickEvent(CoderEvent,GetMagickModule(), "  enter ReadOneDJVUImage()");
         (void) logging;
@@ -759,7 +759,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
diff --git a/coders/djvu.h b/coders/djvu.h
index 29e9fb2..e0261c6 100644
--- a/coders/djvu.h
+++ b/coders/djvu.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dng.c b/coders/dng.c
index 74dd48a..af0f8a2 100644
--- a/coders/dng.c
+++ b/coders/dng.c
@@ -17,7 +17,7 @@
 %                                 July 1999                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -385,7 +385,7 @@
     libraw_processed_image_t
       *raw_image;
 
-    register ssize_t
+    ssize_t
       y;
 
     StringInfo
@@ -482,10 +482,10 @@
     p=(unsigned short *) raw_image->data;
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register Quantum
+      Quantum
         *q;
 
-      register ssize_t
+      ssize_t
         x;
 
       q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/dng.h b/coders/dng.h
index 6bed2ff..ca0abec 100644
--- a/coders/dng.h
+++ b/coders/dng.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dot.c b/coders/dot.c
index e459cd2..252308c 100644
--- a/coders/dot.c
+++ b/coders/dot.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/dot.h b/coders/dot.h
index bcd6ef1..d92cffe 100644
--- a/coders/dot.h
+++ b/coders/dot.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dps.c b/coders/dps.c
index 0577425..7d208b0 100644
--- a/coders/dps.c
+++ b/coders/dps.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -113,13 +113,13 @@
   Pixmap
     pixmap;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register Quantum
+  Quantum
     *q;
 
-  register size_t
+  size_t
     pixel;
 
   Screen
@@ -338,7 +338,7 @@
     case DirectClass:
     default:
     {
-      register size_t
+      size_t
         color,
         index;
 
diff --git a/coders/dps.h b/coders/dps.h
index a5491cc..4b96d99 100644
--- a/coders/dps.h
+++ b/coders/dps.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/dpx.c b/coders/dpx.c
index 4a54f3b..5d07c96 100644
--- a/coders/dpx.c
+++ b/coders/dpx.c
@@ -17,7 +17,7 @@
 %                                March 2001                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -635,7 +635,7 @@
   unsigned int
     shift;
 
-  register ssize_t
+  ssize_t
     i;
 
   *code='\0';
@@ -676,7 +676,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1252,7 +1252,7 @@
       MagickBooleanType
         sync;
 
-      register Quantum
+      Quantum
         *q;
 
       size_t
@@ -1420,7 +1420,7 @@
   char
     buffer[2];
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned int
@@ -1486,10 +1486,10 @@
   QuantumType
     quantum_type;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/dpx.h b/coders/dpx.h
index 47c8f09..6be610f 100644
--- a/coders/dpx.h
+++ b/coders/dpx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/emf.c b/coders/emf.c
index 7ae6c19..2dc4c76 100644
--- a/coders/emf.c
+++ b/coders/emf.c
@@ -18,7 +18,7 @@
 %                               Dirk Lemstra                                  %
 %                               January 2014                                  %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -177,12 +177,12 @@
 #    if defined(MAGICKCORE_HAVE__WFOPEN)
 static size_t UTF8ToUTF16(const unsigned char *utf8,wchar_t *utf16)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
   if (utf16 != (wchar_t *) NULL)
     {
-      register wchar_t
+      wchar_t
         *q;
 
       wchar_t
@@ -269,7 +269,7 @@
   length=UTF8ToUTF16(source,(wchar_t *) NULL);
   if (length == 0)
     {
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -463,10 +463,10 @@
   RECT
     rect;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   RGBQUAD
@@ -521,7 +521,7 @@
       char
         *geometry;
 
-      register char
+      char
         *p;
 
       MagickStatusType
@@ -685,10 +685,10 @@
   MagickStatusType
     flags;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
diff --git a/coders/emf.h b/coders/emf.h
index ef753cd..4399496 100644
--- a/coders/emf.h
+++ b/coders/emf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ept.c b/coders/ept.c
index 7c32532..f382753 100644
--- a/coders/ept.c
+++ b/coders/ept.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/ept.h b/coders/ept.h
index 22a3d26..2113bc3 100644
--- a/coders/ept.h
+++ b/coders/ept.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/exr.c b/coders/exr.c
index 91c8aa4..33dd47a 100644
--- a/coders/exr.c
+++ b/coders/exr.c
@@ -17,7 +17,7 @@
 %                                 April 2007                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -169,7 +169,7 @@
   MagickBooleanType
     status;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -269,7 +269,7 @@
     int
       yy;
 
-    register ssize_t
+    ssize_t
       x;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -456,10 +456,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
diff --git a/coders/exr.h b/coders/exr.h
index 8121126..3abb059 100644
--- a/coders/exr.h
+++ b/coders/exr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/farbfeld.c b/coders/farbfeld.c
index f4e8b82..2d1a37a 100644
--- a/coders/farbfeld.c
+++ b/coders/farbfeld.c
@@ -18,7 +18,7 @@
 %                               November 2020                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -201,7 +201,7 @@
     const void
       *stream;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -333,7 +333,7 @@
   QuantumInfo
     *quantum_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
   size_t
diff --git a/coders/farbfeld.h b/coders/farbfeld.h
index e27754f..7ce03e4 100644
--- a/coders/farbfeld.h
+++ b/coders/farbfeld.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/fax.c b/coders/fax.c
index 111300c..5c0f407 100644
--- a/coders/fax.c
+++ b/coders/fax.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/fax.h b/coders/fax.h
index f0164fa..02212e5 100644
--- a/coders/fax.h
+++ b/coders/fax.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/fits.c b/coders/fits.c
index eea7a30..045fa5c 100644
--- a/coders/fits.c
+++ b/coders/fits.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -179,7 +179,7 @@
   MagickSizeType
     number_pixels;
 
-  register MagickOffsetType
+  MagickOffsetType
     i;
 
   offset=TellBlob(image);
@@ -207,7 +207,7 @@
 static void SetFITSUnsignedPixels(const size_t length,
   const size_t bits_per_pixel,const EndianType endian,unsigned char *pixels)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (endian != MSBEndian)
@@ -270,11 +270,11 @@
   MagickSizeType
     number_pixels;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -321,7 +321,7 @@
   {
     for ( ; EOFBlob(image) == MagickFalse; )
     {
-      register char
+      char
         *p;
 
       count=ReadBlob(image,8,(unsigned char *) keyword);
@@ -643,7 +643,7 @@
   QuantumInfo
     *quantum_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
   size_t
diff --git a/coders/fits.h b/coders/fits.h
index 539bf90..5b435c5 100644
--- a/coders/fits.h
+++ b/coders/fits.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/fl32.c b/coders/fl32.c
index 10e22d6..ff35cdc 100644
--- a/coders/fl32.c
+++ b/coders/fl32.c
@@ -18,7 +18,7 @@
 %                               November 2020                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -242,7 +242,7 @@
     const void
       *stream;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -370,7 +370,7 @@
   QuantumType
     quantum_type;
 
-  register const Quantum
+  const Quantum
     *p;
 
   size_t
diff --git a/coders/fl32.h b/coders/fl32.h
index eba7604..ad85a68 100644
--- a/coders/fl32.h
+++ b/coders/fl32.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/flif.c b/coders/flif.c
index dcb3778..ba6ccaf 100644
--- a/coders/flif.c
+++ b/coders/flif.c
@@ -17,7 +17,7 @@
 %                                April 2016                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -118,13 +118,13 @@
   MagickBooleanType
     status;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned short
+  unsigned short
     *p;
 
   size_t
@@ -395,16 +395,16 @@
   MagickOffsetType
     scene;
 
-  register const Quantum
+  const Quantum
     *magick_restrict p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *magick_restrict qc;
 
-  register unsigned short
+  unsigned short
     *magick_restrict qs;
 
   size_t
diff --git a/coders/flif.h b/coders/flif.h
index ef51e43..56e20bc 100644
--- a/coders/flif.h
+++ b/coders/flif.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/fpx.c b/coders/fpx.c
index e5dc105..841e0d0 100644
--- a/coders/fpx.c
+++ b/coders/fpx.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -147,14 +147,14 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *a,
     *b,
     *g,
@@ -790,10 +790,10 @@
   QuantumType
     quantum_type;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/fpx.h b/coders/fpx.h
index 3c1fa09..630e8b1 100644
--- a/coders/fpx.h
+++ b/coders/fpx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ghostscript-private.h b/coders/ghostscript-private.h
index 8f48be1..66eff85 100644
--- a/coders/ghostscript-private.h
+++ b/coders/ghostscript-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -58,6 +58,24 @@
 }
 #endif
 
+static inline MagickBooleanType ExecuteGhostscriptCommand(
+  const MagickBooleanType verbose,const char *command,char *message,
+  ExceptionInfo *exception)
+{
+  int
+    status;
+
+  status=ExternalDelegateCommand(MagickFalse,verbose,command,message,
+    exception);
+  if (status == 0)
+    return(MagickTrue);
+  if (status < 0)
+    return(MagickFalse);
+  (void) ThrowMagickException(exception,GetMagickModule(),DelegateError,
+    "FailedToExecuteCommand","`%s' (%d)",command,status);
+  return(MagickFalse);
+}
+
 static inline MagickBooleanType InvokeGhostscriptDelegate(
   const MagickBooleanType verbose,const char *command,char *message,
   ExceptionInfo *exception)
@@ -79,19 +97,6 @@
         } \
     }
 
-#define ExecuteGhostscriptCommand(command,status) \
-{ \
-  status=ExternalDelegateCommand(MagickFalse,verbose,command,message, \
-    exception); \
-  if (status == 0) \
-    return(MagickTrue); \
-  if (status < 0) \
-    return(MagickFalse); \
-  (void) ThrowMagickException(exception,GetMagickModule(),DelegateError, \
-    "FailedToExecuteCommand","`%s' (%d)",command,status); \
-  return(MagickFalse); \
-}
-
   char
     **argv,
     *errors;
@@ -109,7 +114,7 @@
     argc,
     code;
 
-  register ssize_t
+  ssize_t
     i;
 
 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
@@ -135,7 +140,7 @@
   ghost_info_struct.revision=(int (*)(gsapi_revision_t *,int)) gsapi_revision;
 #endif
   if (ghost_info == (GhostInfo *) NULL)
-    ExecuteGhostscriptCommand(command,status);
+    return(ExecuteGhostscriptCommand(verbose,command,message,exception));
   if (verbose != MagickFalse)
     {
       (void) fprintf(stdout,"[ghostscript library %.2f]",
@@ -147,7 +152,7 @@
   errors=(char *) NULL;
   status=(ghost_info->new_instance)(&interpreter,(void *) &errors);
   if (status < 0)
-    ExecuteGhostscriptCommand(command,status);
+    return(ExecuteGhostscriptCommand(verbose,command,message,exception));
   code=0;
   argv=StringToArgv(command,&argc);
   if (argv == (char **) NULL)
@@ -226,7 +231,7 @@
     found_end,
     status;
 
-  register char
+  char
     *p;
 
   size_t
diff --git a/coders/gif.c b/coders/gif.c
index 7ebb359..68f892d 100644
--- a/coders/gif.c
+++ b/coders/gif.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -202,7 +202,7 @@
   LZWInfo
     *lzw_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -267,7 +267,7 @@
   int
     code;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -430,10 +430,10 @@
   offset=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=QueueAuthenticPixels(image,0,offset,image->columns,1,exception);
@@ -654,10 +654,10 @@
   waiting_code=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,0,offset,image->columns,1,exception);
@@ -978,10 +978,10 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -1526,10 +1526,10 @@
   RectangleInfo
     page;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1729,7 +1729,7 @@
         value=GetImageProperty(image,"comment",exception);
         if (value != (const char *) NULL)
           {
-            register const char
+            const char
               *p;
 
             size_t
diff --git a/coders/gif.h b/coders/gif.h
index 597eb11..94a704d 100644
--- a/coders/gif.h
+++ b/coders/gif.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/gradient.c b/coders/gradient.c
index f8eaefa..448bcdf 100644
--- a/coders/gradient.c
+++ b/coders/gradient.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -104,10 +104,10 @@
   PixelInfo
     pixel;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -196,7 +196,7 @@
   (void) CopyMagickString(stop_color,"black",MagickPathExtent);
   if (*image_info->filename != '\0')
     {
-      register char
+      char
         *p;
 
       (void) CopyMagickString(start_color,image_info->filename,
diff --git a/coders/gradient.h b/coders/gradient.h
index 73e20f0..e26d902 100644
--- a/coders/gradient.h
+++ b/coders/gradient.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/gray.c b/coders/gray.c
index c4643f3..8c33b47 100644
--- a/coders/gray.c
+++ b/coders/gray.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -119,7 +119,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -227,13 +227,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -306,13 +306,13 @@
         {
           for (i=0; i < (ssize_t) (image->alpha_trait != UndefinedPixelTrait ? 4 : 3); i++)
           {
-            register const Quantum
+            const Quantum
               *magick_restrict p;
 
-            register Quantum
+            Quantum
               *magick_restrict q;
 
-            register ssize_t
+            ssize_t
               x;
 
             if (count != (ssize_t) length)
@@ -387,13 +387,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -441,13 +441,13 @@
           {
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -532,13 +532,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -605,13 +605,13 @@
             stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -870,7 +870,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -898,7 +898,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -934,7 +934,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -956,7 +956,7 @@
           {
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -998,7 +998,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1027,7 +1027,7 @@
               return(status);
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/gray.h b/coders/gray.h
index 2b08acd..a0833fa 100644
--- a/coders/gray.h
+++ b/coders/gray.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/hald.c b/coders/hald.c
index b18e6dc..492fdad 100644
--- a/coders/hald.c
+++ b/coders/hald.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -138,7 +138,7 @@
       green,
       red;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (status == MagickFalse)
diff --git a/coders/hald.h b/coders/hald.h
index 3d062b4..df691e1 100644
--- a/coders/hald.h
+++ b/coders/hald.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/hdr.c b/coders/hdr.c
index a40744c..9454260 100644
--- a/coders/hdr.c
+++ b/coders/hdr.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -153,10 +153,10 @@
     status,
     value_expected;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -197,14 +197,14 @@
       image=DestroyImage(image);
       return((Image *) NULL);
     }
-  while (isgraph(c) && (image->columns == 0) && (image->rows == 0))
+  while (isgraph((int) ((unsigned char) c)) && (image->columns == 0) && (image->rows == 0))
   {
     if (c == (int) '#')
       {
         char
           *comment;
 
-        register char
+        char
           *p;
 
         size_t
@@ -240,11 +240,11 @@
         c=ReadBlobByte(image);
       }
     else
-      if (isalnum(c) == MagickFalse)
+      if (isalnum((int) ((unsigned char) c)) == 0)
         c=ReadBlobByte(image);
       else
         {
-          register char
+          char
             *p;
 
           /*
@@ -256,10 +256,10 @@
             if ((size_t) (p-keyword) < (MagickPathExtent-1))
               *p++=c;
             c=ReadBlobByte(image);
-          } while (isalnum(c) || (c == '_'));
+          } while (isalnum((int) ((unsigned char) c)) || (c == '_'));
           *p='\0';
           value_expected=MagickFalse;
-          while ((isspace(c) != 0) || (c == '='))
+          while ((isspace((int) ((unsigned char) c)) != 0) || (c == '='))
           {
             if (c == '=')
               value_expected=MagickTrue;
@@ -371,7 +371,7 @@
           }
         }
     if ((image->columns == 0) && (image->rows == 0))
-      while (isspace(c) != 0)
+      while (isspace((int) ((unsigned char) c)) != 0)
         c=ReadBlobByte(image);
   }
   if ((LocaleCompare(format,"32-bit_rle_rgbe") != 0) &&
@@ -424,7 +424,7 @@
           }
         else
           {
-            register unsigned char
+            unsigned char
               *p;
 
             p=pixels;
@@ -598,7 +598,7 @@
 {
 #define MinimumRunlength 4
 
-  register size_t
+  size_t
     p,
     q;
 
@@ -670,10 +670,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
diff --git a/coders/hdr.h b/coders/hdr.h
index aeaff7c..b8d9047 100644
--- a/coders/hdr.h
+++ b/coders/hdr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/heic.c b/coders/heic.c
index 5627331..7910247 100644
--- a/coders/heic.c
+++ b/coders/heic.c
@@ -22,7 +22,7 @@
 %                                                                             %
 %                      Copyright 2017-2018 YANDEX LLC.                        %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -126,7 +126,8 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-static MagickBooleanType IsHeifSuccess(struct heif_error *error,Image *image,
+
+static MagickBooleanType IsHeifSuccess(Image *image,struct heif_error *error,
   ExceptionInfo *exception)
 {
   if (error->code == 0)
@@ -140,6 +141,9 @@
   size_t
     length;
 
+  /*
+    Read color profile.
+  */
 #if LIBHEIF_NUMERIC_VERSION >= 0x01040000
   length=heif_image_handle_get_raw_color_profile_size(image_handle);
   if (length > 0)
@@ -147,9 +151,6 @@
       unsigned char
         *color_buffer;
 
-      /*
-        Read color profile.
-      */
       if ((MagickSizeType) length > GetBlobSize(image))
         ThrowBinaryException(CorruptImageError,"InsufficientImageDataInFile",
           image->filename);
@@ -189,6 +190,9 @@
   int
     count;
 
+  /*
+    Read Exif profile.
+  */
   count=heif_image_handle_get_list_of_metadata_block_IDs(image_handle,"Exif",
     &exif_id,1);
   if (count > 0)
@@ -199,9 +203,6 @@
       unsigned char
         *exif_buffer;
 
-      /*
-        Read Exif profile.
-      */
       exif_size=heif_image_handle_get_metadata_size(image_handle,exif_id);
       if ((MagickSizeType) exif_size > GetBlobSize(image))
         ThrowBinaryException(CorruptImageError,"InsufficientImageDataInFile",
@@ -220,8 +221,7 @@
                 *profile;
 
               /*
-                The first 4 byte should be skipped since they indicate the
-                offset to the start of the TIFF header of the Exif data.
+                Skip first 4 bytes, the offset to the TIFF header.
               */
               profile=(StringInfo*) NULL;
               if (exif_size > 8)
@@ -253,14 +253,20 @@
 }
 
 static MagickBooleanType ReadHEICImageByID(const ImageInfo *image_info,
-  Image *image,struct heif_context *heif_context,heif_item_id image_id,
+  Image *image,struct heif_image_handle *image_handle,
   ExceptionInfo *exception)
 {
+  const uint8_t
+    *p_y,
+    *p_cb,
+    *p_cr,
+    *p_a;
+
   int
-    stride_y,
-    stride_cb,
-    stride_cr,
-    stride_a;
+    stride_y = 0,
+    stride_cb = 0,
+    stride_cr = 0,
+    stride_a = 0;
 
   MagickBooleanType
     preserve_orientation,
@@ -278,65 +284,36 @@
   struct heif_image
     *heif_image;
 
-  struct heif_image_handle
-    *image_handle;
-
-  const uint8_t
-    *p_y,
-    *p_cb,
-    *p_cr,
-    *p_a;
-
-  error=heif_context_get_image_handle(heif_context,image_id,&image_handle);
-  if (IsHeifSuccess(&error,image,exception) == MagickFalse)
-    return(MagickFalse);
-  if (ReadHEICColorProfile(image,image_handle,exception) == MagickFalse)
-    {
-      heif_image_handle_release(image_handle);
-      return(MagickFalse);
-    }
-  if (ReadHEICExifProfile(image,image_handle,exception) == MagickFalse)
-    {
-      heif_image_handle_release(image_handle);
-      return(MagickFalse);
-    }
   /*
-    Set image size.
+    Read HEIC image from container.
   */
   image->columns=(size_t) heif_image_handle_get_width(image_handle);
   image->rows=(size_t) heif_image_handle_get_height(image_handle);
+  image->depth=8;
 #if LIBHEIF_NUMERIC_VERSION > 0x01040000
   image->depth=(size_t) heif_image_handle_get_luma_bits_per_pixel(image_handle);
-#else
-  image->depth=8;
 #endif
+  image->colorspace=YCbCrColorspace;
   if (heif_image_handle_has_alpha_channel(image_handle))
     image->alpha_trait=BlendPixelTrait;
   preserve_orientation=IsStringTrue(GetImageOption(image_info,
     "heic:preserve-orientation"));
   if (preserve_orientation == MagickFalse)
     (void) SetImageProperty(image,"exif:Orientation","1",exception);
+  if (ReadHEICColorProfile(image,image_handle,exception) == MagickFalse)
+    return(MagickFalse);
+  if (ReadHEICExifProfile(image,image_handle,exception) == MagickFalse)
+    return(MagickFalse);
   if (image_info->ping != MagickFalse)
-    {
-      image->colorspace=YCbCrColorspace;
-      heif_image_handle_release(image_handle);
-      return(MagickTrue);
-    }
+    return(MagickTrue);
   if (HEICSkipImage(image_info,image) != MagickFalse)
-    {
-      heif_image_handle_release(image_handle);
-      return(MagickTrue);
-    }
+    return(MagickTrue);
   status=SetImageExtent(image,image->columns,image->rows,exception);
   if (status == MagickFalse)
-    {
-      heif_image_handle_release(image_handle);
-      return(MagickFalse);
-    }
+    return(MagickFalse);
   /*
-    Copy HEIF image into ImageMagick data structures.
+    Convert HEIC format to ImageMagick YCrCb image.
   */
-  (void) SetImageColorspace(image,YCbCrColorspace,exception);
   decode_options=heif_decoding_options_alloc();
 #if LIBHEIF_NUMERIC_VERSION > 0x01070000
   decode_options->convert_hdr_to_8bit=1;
@@ -346,28 +323,20 @@
   error=heif_decode_image(image_handle,&heif_image,heif_colorspace_YCbCr,
     heif_chroma_420,decode_options);
   heif_decoding_options_free(decode_options);
-  if (IsHeifSuccess(&error,image,exception) == MagickFalse)
-    {
-      heif_image_handle_release(image_handle);
-      return(MagickFalse);
-    }
-  /*
-    Correct the width and height of the image.
-  */
+  if (IsHeifSuccess(image,&error,exception) == MagickFalse)
+    return(MagickFalse);
   image->columns=(size_t) heif_image_get_width(heif_image,heif_channel_Y);
   image->rows=(size_t) heif_image_get_height(heif_image,heif_channel_Y);
   status=SetImageExtent(image,image->columns,image->rows,exception);
   if (status == MagickFalse)
     {
       heif_image_release(heif_image);
-      heif_image_handle_release(image_handle);
       return(MagickFalse);
     }
   p_y=heif_image_get_plane_readonly(heif_image,heif_channel_Y,&stride_y);
   p_cb=heif_image_get_plane_readonly(heif_image,heif_channel_Cb,&stride_cb);
   p_cr=heif_image_get_plane_readonly(heif_image,heif_channel_Cr,&stride_cr);
   p_a=(const uint8_t *) NULL;
-  stride_a=0;
   if (image->alpha_trait != UndefinedPixelTrait)
     p_a=heif_image_get_plane_readonly(heif_image,heif_channel_Alpha,&stride_a);
   for (y=0; y < (ssize_t) image->rows; y++)
@@ -375,7 +344,7 @@
     Quantum
       *q;
 
-    register ssize_t
+    ssize_t
       x;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -383,22 +352,21 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      SetPixelRed(image,ScaleCharToQuantum((unsigned char) p_y[y*
-        stride_y+x]),q);
-      SetPixelGreen(image,ScaleCharToQuantum((unsigned char) p_cb[(y/2)*
-        stride_cb+x/2]),q);
-      SetPixelBlue(image,ScaleCharToQuantum((unsigned char) p_cr[(y/2)*
-        stride_cr+x/2]),q);
+      SetPixelRed(image,ScaleCharToQuantum((unsigned char)
+        p_y[y*stride_y+x]),q);
+      SetPixelGreen(image,ScaleCharToQuantum((unsigned char)
+        p_cb[(y/2)*stride_cb+x/2]),q);
+      SetPixelBlue(image,ScaleCharToQuantum((unsigned char)
+        p_cr[(y/2)*stride_cr+x/2]),q);
       if (p_a != (const uint8_t *) NULL)
-        SetPixelAlpha(image,ScaleCharToQuantum((unsigned char) p_a[y*
-          stride_a+x]),q);
+        SetPixelAlpha(image,ScaleCharToQuantum((unsigned char)
+          p_a[y*stride_a+x]),q);
       q+=GetPixelChannels(image);
     }
     if (SyncAuthenticPixels(image,exception) == MagickFalse)
       break;
   }
   heif_image_release(heif_image);
-  heif_image_handle_release(image_handle);
   return(MagickTrue);
 }
 
@@ -428,6 +396,9 @@
   struct heif_error
     error;
 
+  struct heif_image_handle
+    *image_handle;
+
   void
     *file_data;
 
@@ -445,7 +416,7 @@
   status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
   if (status == MagickFalse)
     return(DestroyImageList(image));
-  if (GetBlobSize(image) > (MagickSizeType) SSIZE_MAX)
+  if (GetBlobSize(image) > (MagickSizeType) LONG_MAX)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
   length=(size_t) GetBlobSize(image);
   file_data=AcquireMagickMemory(length);
@@ -457,39 +428,48 @@
       ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
     }
   /*
-    Decode HEIF file
+    Decode HEIF image.
   */
   heif_context=heif_context_alloc();
   error=heif_context_read_from_memory_without_copy(heif_context,file_data,
     length,NULL);
-  if (IsHeifSuccess(&error,image,exception) == MagickFalse)
+  if (IsHeifSuccess(image,&error,exception) == MagickFalse)
     {
       heif_context_free(heif_context);
       file_data=RelinquishMagickMemory(file_data);
       return(DestroyImageList(image));
     }
   error=heif_context_get_primary_image_ID(heif_context,&primary_image_id);
-  if (IsHeifSuccess(&error,image,exception) == MagickFalse)
+  if (IsHeifSuccess(image,&error,exception) == MagickFalse)
     {
       heif_context_free(heif_context);
       file_data=RelinquishMagickMemory(file_data);
       return(DestroyImageList(image));
     }
-  status=ReadHEICImageByID(image_info,image,heif_context,primary_image_id,
-    exception);
+  error=heif_context_get_image_handle(heif_context,primary_image_id,
+    &image_handle);
+  if (IsHeifSuccess(image,&error,exception) == MagickFalse)
+    {
+      heif_context_free(heif_context);
+      file_data=RelinquishMagickMemory(file_data);
+      return(DestroyImageList(image));
+    }
+  status=ReadHEICImageByID(image_info,image,image_handle,exception);
   image_ids=(heif_item_id *) NULL;
   count=(size_t) heif_context_get_number_of_top_level_images(heif_context);
   if ((status != MagickFalse) && (count > 1))
     {
-      register size_t
+      size_t
         i;
 
       image_ids=(heif_item_id *) AcquireQuantumMemory((size_t) count,
         sizeof(*image_ids));
       if (image_ids == (heif_item_id *) NULL)
         {
+          heif_image_handle_release(image_handle);
           heif_context_free(heif_context);
-          ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+          file_data=RelinquishMagickMemory(file_data);
+          return(DestroyImageList(image));
         }
       (void) heif_context_get_list_of_top_level_image_IDs(heif_context,
         image_ids,(int) count);
@@ -507,8 +487,14 @@
             break;
           }
         image=SyncNextImageInList(image);
-        status=ReadHEICImageByID(image_info,image,heif_context,image_ids[i],
-          exception);
+        error=heif_context_get_image_handle(heif_context,primary_image_id,
+          &image_handle);
+        if (IsHeifSuccess(image,&error,exception) == MagickFalse)
+          {
+            status=MagickFalse;
+            break;
+          }
+        status=ReadHEICImageByID(image_info,image,image_handle,exception);
         if (status == MagickFalse)
           break;
         if (image_info->number_scenes != 0)
@@ -516,15 +502,54 @@
             break;
       }
     }
+  heif_image_handle_release(image_handle);
+  error=heif_context_get_image_handle(heif_context,primary_image_id,
+    &image_handle);
+  if (IsHeifSuccess(image,&error,exception) == MagickFalse)
+    {
+      heif_context_free(heif_context);
+      file_data=RelinquishMagickMemory(file_data);
+      return(DestroyImageList(image));
+    }
+  if (heif_image_handle_has_depth_image(image_handle) != 0)
+    {
+      heif_item_id
+        depth_id;
+
+      int
+        number_images;
+
+      /*
+        Read depth image.
+      */
+      number_images=heif_image_handle_get_list_of_depth_image_IDs(image_handle,
+        &depth_id,1);
+      if (number_images > 0)
+        {
+          struct heif_image_handle
+            *depth_handle;
+
+          error=heif_image_handle_get_depth_image_handle(image_handle,depth_id,
+            &depth_handle);
+          if (IsHeifSuccess(image,&error,exception) != MagickFalse)
+            {
+              AcquireNextImage(image_info,image,exception);
+              if (GetNextImageInList(image) == (Image *) NULL)
+                status=MagickFalse;
+              image=SyncNextImageInList(image);
+              status=ReadHEICImageByID(image_info,image,depth_handle,
+                exception);
+              heif_image_handle_release(depth_handle);
+            }
+       }
+    }
+  heif_image_handle_release(image_handle);
   if (image_ids != (heif_item_id *) NULL)
     (void) RelinquishMagickMemory(image_ids);
   heif_context_free(heif_context);
   file_data=RelinquishMagickMemory(file_data);
   if (status == MagickFalse)
     return(DestroyImageList(image));
-  /*
-    Change image colorspace if it contains a color profile.
-  */
   image=GetFirstImageInList(image);
   profile=GetImageProfile(image,"icc");
   if (profile != (const StringInfo *) NULL)
@@ -532,9 +557,10 @@
       Image
         *next;
 
-      next=image;
-      while (next != (Image *) NULL)
-      {
+      /*
+        Change image colorspace if it contains a color profile.
+      */
+      for (next=image; next != (Image *) NULL; next=GetNextImageInList(next))
         if (HEICSkipImage(image_info,next) != MagickFalse)
           {
             if (image_info->ping == MagickFalse)
@@ -542,8 +568,6 @@
             else
               next->colorspace=sRGBColorspace;
           }
-        next=GetNextImageInList(next);
-      }
     }
   return(image);
 }
@@ -736,7 +760,7 @@
   const StringInfo
     *profile;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -773,8 +797,8 @@
               image->filename);
             length=65533L;
           }
-          (void) heif_context_add_exif_metadata(context,image_handle,
-            (void*) GetStringInfoDatum(profile),(int) length);
+        (void) heif_context_add_exif_metadata(context,image_handle,
+          (void*) GetStringInfoDatum(profile),(int) length);
       }
     if (LocaleCompare(name,"XMP") == 0)
       {
@@ -828,20 +852,17 @@
 static MagickBooleanType WriteHEICImageYCbCr(Image *image,
   struct heif_image *heif_image,ExceptionInfo *exception)
 {
+  int
+    p_y,
+    p_cb,
+    p_cr;
+
   MagickBooleanType
     status;
 
   ssize_t
     y;
 
-  const Quantum
-    *p;
-
-  int
-    p_y,
-    p_cb,
-    p_cr;
-
   struct heif_error
     error;
 
@@ -851,22 +872,21 @@
     *q_cr;
 
   status=MagickTrue;
-
   error=heif_image_add_plane(heif_image,heif_channel_Y,(int) image->columns,
     (int) image->rows,8);
-  status=IsHeifSuccess(&error,image,exception);
+  status=IsHeifSuccess(image,&error,exception);
   if (status == MagickFalse)
-    return status;
+    return(status);
   error=heif_image_add_plane(heif_image,heif_channel_Cb,
     ((int) image->columns+1)/2,((int) image->rows+1)/2,8);
-  status=IsHeifSuccess(&error,image,exception);
+  status=IsHeifSuccess(image,&error,exception);
   if (status == MagickFalse)
-    return status;
+    return(status);
   error=heif_image_add_plane(heif_image,heif_channel_Cr,
     ((int) image->columns+1)/2,((int) image->rows+1)/2,8);
-  status=IsHeifSuccess(&error,image,exception);
+  status=IsHeifSuccess(image,&error,exception);
   if (status == MagickFalse)
-    return status;
+    return(status);
   q_y=heif_image_get_plane(heif_image,heif_channel_Y,&p_y);
   q_cb=heif_image_get_plane(heif_image,heif_channel_Cb,&p_cb);
   q_cr=heif_image_get_plane(heif_image,heif_channel_Cr,&p_cr);
@@ -875,7 +895,10 @@
   */
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    const Quantum
+      *p;
+
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -884,7 +907,13 @@
         status=MagickFalse;
         break;
       }
-    if ((y & 0x01) == 0)
+    if ((y & 0x01) != 0)
+      for (x=0; x < (ssize_t) image->columns; x++)
+      {
+        q_y[y*p_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
+        p+=GetPixelChannels(image);
+      }
+    else
       for (x=0; x < (ssize_t) image->columns; x+=2)
       {
         q_y[y*p_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
@@ -897,12 +926,6 @@
             p+=GetPixelChannels(image);
           }
       }
-    else
-      for (x=0; x < (ssize_t) image->columns; x++)
-      {
-        q_y[y*p_y+x]=ScaleQuantumToChar(GetPixelRed(image,p));
-        p+=GetPixelChannels(image);
-      }
     if (image->previous == (Image *) NULL)
       {
         status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
@@ -939,7 +962,7 @@
   status=MagickTrue;
   error=heif_image_add_plane(heif_image,heif_channel_interleaved,
     (int) image->columns,(int) image->rows,8);
-  status=IsHeifSuccess(&error,image,exception);
+  status=IsHeifSuccess(image,&error,exception);
   if (status == MagickFalse)
     return status;
   plane=heif_image_get_plane(heif_image,heif_channel_interleaved,&stride);
@@ -948,7 +971,7 @@
   */
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1019,7 +1042,6 @@
   heif_context=heif_context_alloc();
   heif_image=(struct heif_image*) NULL;
   heif_encoder=(struct heif_encoder*) NULL;
-
   do
   {
 #if LIBHEIF_NUMERIC_VERSION >= 0x01040000
@@ -1054,7 +1076,7 @@
 #endif
       error=heif_context_get_encoder_for_format(heif_context,
         heif_compression_HEVC,&heif_encoder);
-    status=IsHeifSuccess(&error,image,exception);
+    status=IsHeifSuccess(image,&error,exception);
     if (status == MagickFalse)
       break;
     if ((colorspace == heif_colorspace_YCbCr) &&
@@ -1067,9 +1089,9 @@
     /*
       Initialize HEIF encoder context.
     */
-    error=heif_image_create((int) image->columns,(int) image->rows,
-      colorspace,chroma,&heif_image);
-    status=IsHeifSuccess(&error,image,exception);
+    error=heif_image_create((int) image->columns,(int) image->rows,colorspace,
+      chroma,&heif_image);
+    status=IsHeifSuccess(image,&error,exception);
     if (status == MagickFalse)
       break;
 #if LIBHEIF_NUMERIC_VERSION >= 0x01040000
@@ -1091,14 +1113,14 @@
       {
         error=heif_encoder_set_lossy_quality(heif_encoder,(int)
           image_info->quality);
-        status=IsHeifSuccess(&error,image,exception);
+        status=IsHeifSuccess(image,&error,exception);
         if (status == MagickFalse)
           break;
       }
     error=heif_context_encode_image(heif_context,heif_image,heif_encoder,
       (const struct heif_encoding_options *) NULL,
       (struct heif_image_handle **) NULL);
-    status=IsHeifSuccess(&error,image,exception);
+    status=IsHeifSuccess(image,&error,exception);
     if (status == MagickFalse)
       break;
 #if LIBHEIF_NUMERIC_VERSION >= 0x01030000
@@ -1125,7 +1147,7 @@
     WriteProfile(heif_context,image,exception);
 #endif
   error=heif_context_write(heif_context,&writer,image);
-  status=IsHeifSuccess(&error,image,exception);
+  status=IsHeifSuccess(image,&error,exception);
   if (heif_encoder != (struct heif_encoder*) NULL)
     heif_encoder_release(heif_encoder);
   if (heif_image != (struct heif_image*) NULL)
diff --git a/coders/heic.h b/coders/heic.h
index a61b80e..81f1d1d 100644
--- a/coders/heic.h
+++ b/coders/heic.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/histogram.c b/coders/histogram.c
index 1f2a31a..40a7198 100644
--- a/coders/histogram.c
+++ b/coders/histogram.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -199,14 +199,14 @@
   RectangleInfo
     geometry;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register Quantum
+  Quantum
     *q,
     *r;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -295,7 +295,8 @@
       break;
     if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
       {
-        y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].red-0.5);
+        y=CastDoubleToLong(ceil(histogram_image->rows-scale*
+          histogram[x].red-0.5));
         r=q+y*GetPixelChannels(histogram_image);
         for ( ; y < (ssize_t) histogram_image->rows; y++)
         {
@@ -305,7 +306,8 @@
       }
     if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
       {
-        y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].green-0.5);
+        y=CastDoubleToLong(ceil(histogram_image->rows-scale*
+          histogram[x].green-0.5));
         r=q+y*GetPixelChannels(histogram_image);
         for ( ; y < (ssize_t) histogram_image->rows; y++)
         {
@@ -315,7 +317,8 @@
       }
     if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
       {
-        y=(ssize_t) ceil(histogram_image->rows-scale*histogram[x].blue-0.5);
+        y=CastDoubleToLong(ceil(histogram_image->rows-scale*
+          histogram[x].blue-0.5));
         r=q+y*GetPixelChannels(histogram_image);
         for ( ; y < (ssize_t) histogram_image->rows; y++)
         {
diff --git a/coders/histogram.h b/coders/histogram.h
index b9276db..4090567 100644
--- a/coders/histogram.h
+++ b/coders/histogram.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/hrz.c b/coders/hrz.c
index 87f18c9..8eb010f 100644
--- a/coders/hrz.c
+++ b/coders/hrz.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -100,13 +100,13 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -278,14 +278,14 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x,
     y;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
diff --git a/coders/hrz.h b/coders/hrz.h
index d1f502e..9e81ea8 100644
--- a/coders/hrz.h
+++ b/coders/hrz.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/html.c b/coders/html.c
index 062197d..f305fbd 100644
--- a/coders/html.c
+++ b/coders/html.c
@@ -18,7 +18,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -225,7 +225,7 @@
   RectangleInfo
     geometry;
 
-  register char
+  char
     *p;
 
   /*
diff --git a/coders/html.h b/coders/html.h
index 2ee8de8..e6cf8d0 100644
--- a/coders/html.h
+++ b/coders/html.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/icon.c b/coders/icon.c
index 53744b3..2ccbc82 100644
--- a/coders/icon.c
+++ b/coders/icon.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -190,14 +190,14 @@
   MagickSizeType
     extent;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -372,7 +372,7 @@
         }
       if (image->storage_class == PseudoClass)
         {
-          register ssize_t
+          ssize_t
             j;
 
           unsigned char
@@ -815,7 +815,7 @@
     *images,
     *resized;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -879,14 +879,14 @@
     offset,
     scene;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
diff --git a/coders/icon.h b/coders/icon.h
index 4f494a7..a092f53 100644
--- a/coders/icon.h
+++ b/coders/icon.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/info.c b/coders/info.c
index 4ec8143..e6bc46c 100644
--- a/coders/info.c
+++ b/coders/info.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/info.h b/coders/info.h
index ff2b424..ed0d0de 100644
--- a/coders/info.h
+++ b/coders/info.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/inline.c b/coders/inline.c
index fb1fb9a..c62abfb 100644
--- a/coders/inline.c
+++ b/coders/inline.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -101,7 +101,7 @@
   MagickBooleanType
     status;
 
-  register size_t
+  size_t
     i;
 
   size_t
diff --git a/coders/inline.h b/coders/inline.h
index 9e793bc..0cedb95 100644
--- a/coders/inline.h
+++ b/coders/inline.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ipl.c b/coders/ipl.c
index 1b83116..8d29f36 100644
--- a/coders/ipl.c
+++ b/coders/ipl.c
@@ -13,7 +13,7 @@
 %                                2008.05.07                                   %
 %                                   v 0.9                                     %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -175,7 +175,7 @@
   Image *image;
 
   MagickBooleanType status;
-  register Quantum *q;
+  Quantum *q;
   unsigned char magick[12], *pixels;
   ssize_t count;
   ssize_t y;
@@ -515,7 +515,7 @@
   MagickOffsetType
     scene;
   
-  register const Quantum
+  const Quantum
     *p;
 
   QuantumInfo
diff --git a/coders/ipl.h b/coders/ipl.h
index c45f94b..3082729 100644
--- a/coders/ipl.h
+++ b/coders/ipl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jbig.c b/coders/jbig.c
index 7a38a9e..41e5e5a 100644
--- a/coders/jbig.c
+++ b/coders/jbig.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -124,13 +124,13 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -419,13 +419,13 @@
   MemoryInfo
     *pixel_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
diff --git a/coders/jbig.h b/coders/jbig.h
index 25aef77..016a7af 100644
--- a/coders/jbig.h
+++ b/coders/jbig.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jnx.c b/coders/jnx.c
index b53b542..6a160d0 100644
--- a/coders/jnx.c
+++ b/coders/jnx.c
@@ -16,7 +16,7 @@
 %                                 July 2012                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -141,7 +141,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -202,7 +202,7 @@
     *jnx_level_info[i].copyright='\0';
     if (jnx_info.version > 3)
       {
-        register ssize_t
+        ssize_t
           j;
 
         unsigned short
@@ -227,7 +227,7 @@
     MagickOffsetType
       offset;
 
-    register ssize_t
+    ssize_t
       j;
 
     offset=SeekBlob(image,(MagickOffsetType) jnx_level_info[i].offset,SEEK_SET);
diff --git a/coders/jnx.h b/coders/jnx.h
index 4fef1d6..5482a6c 100644
--- a/coders/jnx.h
+++ b/coders/jnx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jp2.c b/coders/jp2.c
index 3dee8d9..5194992 100644
--- a/coders/jp2.c
+++ b/coders/jp2.c
@@ -17,7 +17,7 @@
 %                                 June 2001                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -277,7 +277,7 @@
   opj_stream_t
     *jp2_stream;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -398,6 +398,7 @@
   {
     if ((jp2_image->comps[i].dx == 0) || (jp2_image->comps[i].dy == 0) ||
         (jp2_image->comps[0].prec != jp2_image->comps[i].prec) ||
+        (jp2_image->comps[0].prec > 64) ||
         (jp2_image->comps[0].sgnd != jp2_image->comps[i].sgnd) ||
         ((image->ping == MagickFalse) && (jp2_image->comps[i].data == NULL)))
       {
@@ -455,10 +456,10 @@
     }
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -833,7 +834,7 @@
   opj_stream_t
     *jp2_stream;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -906,7 +907,7 @@
   option=GetImageOption(image_info,"jp2:quality");
   if (option != (const char *) NULL)
     {
-      register const char
+      const char
         *p;
 
       /*
@@ -944,7 +945,7 @@
   option=GetImageOption(image_info,"jp2:rate");
   if (option != (const char *) NULL)
     {
-      register const char
+      const char
         *p;
 
       /*
@@ -1034,7 +1035,7 @@
   */
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
     ssize_t
@@ -1050,7 +1051,7 @@
         double
           scale;
 
-        register int
+        int
           *q;
 
         scale=(double) (((size_t) 1UL << jp2_image->comps[i].prec)-1)/
diff --git a/coders/jp2.h b/coders/jp2.h
index 3da5ea3..edefd9e 100644
--- a/coders/jp2.h
+++ b/coders/jp2.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jpeg.c b/coders/jpeg.c
index 7120f5b..db38535 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -427,10 +427,10 @@
   Image
     *image;
 
-  register unsigned char
+  unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   error_manager=(ErrorManager *) jpeg_info->client_data;
@@ -515,7 +515,7 @@
   char
     magick[13];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -559,7 +559,7 @@
   char
     magick[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -643,7 +643,7 @@
   MagickBooleanType
     status;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -762,7 +762,7 @@
       qvalue,
       sum;
 
-    register ssize_t
+    ssize_t
       i;
 
     /*
@@ -947,7 +947,7 @@
   ErrorManager
     *error_manager;
 
-  register size_t
+  size_t
     i;
 
   error_manager=(ErrorManager *) jpeg_info->client_data;
@@ -970,15 +970,12 @@
   MagickBooleanType
     status;
 
-  register unsigned char
+  unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
-  size_t
-    length;
-
   StringInfo
     *profile;
 
@@ -1063,7 +1060,7 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     i;
 
   struct jpeg_error_mgr
@@ -1072,7 +1069,7 @@
   struct jpeg_progress_mgr
     jpeg_progress;
 
-  register JSAMPLE
+  JSAMPLE
     *p;
 
   size_t
@@ -1122,8 +1119,7 @@
     {
       JPEGDestroyDecompress(jpeg_info);
       (void) CloseBlob(image);
-      number_pixels=(MagickSizeType) image->columns*image->rows;
-      if (number_pixels != 0)
+      if (exception->severity < ErrorException)
         return(GetFirstImageInList(image));
       return(DestroyImage(image));
     }
@@ -1418,10 +1414,10 @@
   scanline[0]=(JSAMPROW) jpeg_pixels;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register ssize_t
+    ssize_t
       x;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     if (jpeg_read_scanlines(jpeg_info,scanline,1) != 1)
@@ -1780,7 +1776,7 @@
   double
     value;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2003,7 +1999,7 @@
   MagickBooleanType
     iptc;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2048,7 +2044,7 @@
       }
     if (LocaleCompare(name,"ICC") == 0)
       {
-        register unsigned char
+        unsigned char
           *p;
 
         tag_length=strlen(ICC_PROFILE);
@@ -2069,7 +2065,7 @@
     if (((LocaleCompare(name,"IPTC") == 0) ||
         (LocaleCompare(name,"8BIM") == 0)) && (iptc == MagickFalse))
       {
-        register unsigned char
+        unsigned char
           *p;
 
         size_t
@@ -2148,13 +2144,13 @@
   char
     **textlist;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (text == (char *) NULL)
@@ -2219,10 +2215,10 @@
   MemoryInfo
     *memory_info;
 
-  register JSAMPLE
+  JSAMPLE
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2812,10 +2808,10 @@
           (jpeg_info->in_color_space == JCS_YCbCr))
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2839,10 +2835,10 @@
         if (jpeg_info->in_color_space == JCS_GRAYSCALE)
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register const Quantum
+            const Quantum
               *p;
 
-            register ssize_t
+            ssize_t
               x;
 
             p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2864,10 +2860,10 @@
         else
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register const Quantum
+            const Quantum
               *p;
 
-            register ssize_t
+            ssize_t
               x;
 
             p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2900,10 +2896,10 @@
     if (jpeg_info->in_color_space == JCS_GRAYSCALE)
       for (y=0; y < (ssize_t) image->rows; y++)
       {
-        register const Quantum
+        const Quantum
           *p;
 
-        register ssize_t
+        ssize_t
           x;
 
         p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2927,10 +2923,10 @@
           (jpeg_info->in_color_space == JCS_YCbCr))
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2953,10 +2949,10 @@
       else
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/jpeg.h b/coders/jpeg.h
index f7dd41f..c16a62c 100644
--- a/coders/jpeg.h
+++ b/coders/jpeg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/json.c b/coders/json.c
index d61c3d3..7eb6718 100644
--- a/coders/json.c
+++ b/coders/json.c
@@ -17,7 +17,7 @@
 %                                January 2014                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -193,10 +193,10 @@
   char
     *escaped_json;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -319,7 +319,7 @@
   ChannelStatistics
     *channel_statistics;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -354,10 +354,10 @@
   }
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -365,7 +365,7 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      register ssize_t
+      ssize_t
         i;
 
       if (GetPixelReadMask(image,p) <= (QuantumRange/2))
@@ -573,7 +573,7 @@
   n=0;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *p;
 
     ssize_t
@@ -620,7 +620,7 @@
   const char *name,const MagickBooleanType separator,
   const ChannelMoments *channel_moments)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -658,7 +658,7 @@
 static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
   const ChannelPerceptualHash *channel_phash)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -675,7 +675,7 @@
   (void) FormatLocaleFile(file,"],\n");
   for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
   {
-    register ssize_t
+    ssize_t
       j;
 
     PixelChannel channel = GetPixelChannelChannel(image,i);
@@ -685,7 +685,7 @@
     n=FormatLocaleFile(file,"      \"Channel%.20g\": {\n",(double) channel);
     for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
     {
-      register ssize_t
+      ssize_t
         k;
 
       n+=FormatLocaleFile(file,"        \"PH%.20g\": [",(double) j+1);
@@ -754,7 +754,7 @@
     record,
     sentinel;
 
-  register ssize_t
+  ssize_t
     i,
     j,
     k;
@@ -954,10 +954,10 @@
   MagickBooleanType
     ping;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1081,37 +1081,37 @@
         return(MagickFalse);
       (void) FormatLocaleFile(file,"    \"channel%s\": {\n",locate);
       if (image->alpha_trait != UndefinedPixelTrait)
-        (void) PrintChannelLocations(file,image,AlphaPixelChannel,"Alpha",
+        (void) PrintChannelLocations(file,image,AlphaPixelChannel,"alpha",
           type,max_locations,MagickTrue,channel_statistics);
       switch (image->colorspace)
       {
         case RGBColorspace:
         default:
         {
-          (void) PrintChannelLocations(file,image,RedPixelChannel,"Red",
+          (void) PrintChannelLocations(file,image,RedPixelChannel,"red",
             type,max_locations,MagickTrue,channel_statistics);
-          (void) PrintChannelLocations(file,image,GreenPixelChannel,"Green",
+          (void) PrintChannelLocations(file,image,GreenPixelChannel,"green",
             type,max_locations,MagickTrue,channel_statistics);
-          (void) PrintChannelLocations(file,image,BluePixelChannel,"Blue",
+          (void) PrintChannelLocations(file,image,BluePixelChannel,"blue",
             type,max_locations,MagickFalse,channel_statistics);
           break;
         }
         case CMYKColorspace:
         {
-          (void) PrintChannelLocations(file,image,CyanPixelChannel,"Cyan",
+          (void) PrintChannelLocations(file,image,CyanPixelChannel,"cyan",
             type,max_locations,MagickTrue,channel_statistics);
           (void) PrintChannelLocations(file,image,MagentaPixelChannel,
-            "Magenta",type,max_locations,MagickTrue,channel_statistics);
-          (void) PrintChannelLocations(file,image,YellowPixelChannel,"Yellow",
+            "magenta",type,max_locations,MagickTrue,channel_statistics);
+          (void) PrintChannelLocations(file,image,YellowPixelChannel,"yellow",
             type,max_locations,MagickTrue,channel_statistics);
-          (void) PrintChannelLocations(file,image,BlackPixelChannel,"Black",
+          (void) PrintChannelLocations(file,image,BlackPixelChannel,"black",
             type,max_locations,MagickFalse,channel_statistics);
           break;
         }
         case LinearGRAYColorspace:
         case GRAYColorspace:
         {
-          (void) PrintChannelLocations(file,image,GrayPixelChannel,"Gray",
+          (void) PrintChannelLocations(file,image,GrayPixelChannel,"gray",
             type,max_locations,MagickFalse,channel_statistics);
           break;
         }
@@ -1210,37 +1210,37 @@
         }
       (void) FormatLocaleFile(file,"    \"channelStatistics\": {\n");
       if (image->alpha_trait != UndefinedPixelTrait)
-        (void) PrintChannelStatistics(file,AlphaPixelChannel,"Alpha",1.0/scale,
+        (void) PrintChannelStatistics(file,AlphaPixelChannel,"alpha",1.0/scale,
           MagickTrue,channel_statistics);
       switch (image->colorspace)
       {
         case RGBColorspace:
         default:
         {
-          (void) PrintChannelStatistics(file,RedPixelChannel,"Red",1.0/scale,
+          (void) PrintChannelStatistics(file,RedPixelChannel,"red",1.0/scale,
             MagickTrue,channel_statistics);
-          (void) PrintChannelStatistics(file,GreenPixelChannel,"Green",1.0/
+          (void) PrintChannelStatistics(file,GreenPixelChannel,"green",1.0/
             scale,MagickTrue,channel_statistics);
-          (void) PrintChannelStatistics(file,BluePixelChannel,"Blue",1.0/scale,
+          (void) PrintChannelStatistics(file,BluePixelChannel,"blue",1.0/scale,
             MagickFalse,channel_statistics);
           break;
         }
         case CMYKColorspace:
         {
-          (void) PrintChannelStatistics(file,CyanPixelChannel,"Cyan",1.0/scale,
+          (void) PrintChannelStatistics(file,CyanPixelChannel,"cyan",1.0/scale,
             MagickTrue,channel_statistics);
-          (void) PrintChannelStatistics(file,MagentaPixelChannel,"Magenta",1.0/
+          (void) PrintChannelStatistics(file,MagentaPixelChannel,"magenta",1.0/
             scale,MagickTrue,channel_statistics);
-          (void) PrintChannelStatistics(file,YellowPixelChannel,"Yellow",1.0/
+          (void) PrintChannelStatistics(file,YellowPixelChannel,"yellow",1.0/
             scale,MagickTrue,channel_statistics);
-          (void) PrintChannelStatistics(file,BlackPixelChannel,"Black",1.0/
+          (void) PrintChannelStatistics(file,BlackPixelChannel,"black",1.0/
             scale,MagickFalse,channel_statistics);
           break;
         }
         case LinearGRAYColorspace:
         case GRAYColorspace:
         {
-          (void) PrintChannelStatistics(file,GrayPixelChannel,"Gray",1.0/scale,
+          (void) PrintChannelStatistics(file,GrayPixelChannel,"gray",1.0/scale,
             MagickFalse,channel_statistics);
           break;
         }
@@ -1253,37 +1253,37 @@
     {
       (void) FormatLocaleFile(file,"    \"channelMoments\": {\n");
       if (image->alpha_trait != UndefinedPixelTrait)
-        (void) PrintChannelMoments(file,AlphaPixelChannel,"Alpha",MagickTrue,
+        (void) PrintChannelMoments(file,AlphaPixelChannel,"alpha",MagickTrue,
           channel_moments);
       switch (image->colorspace)
       {
         case RGBColorspace:
         default:
         {
-          (void) PrintChannelMoments(file,RedPixelChannel,"Red",MagickTrue,
+          (void) PrintChannelMoments(file,RedPixelChannel,"red",MagickTrue,
             channel_moments);
-          (void) PrintChannelMoments(file,GreenPixelChannel,"Green",MagickTrue,
+          (void) PrintChannelMoments(file,GreenPixelChannel,"green",MagickTrue,
             channel_moments);
-          (void) PrintChannelMoments(file,BluePixelChannel,"Blue",MagickFalse,
+          (void) PrintChannelMoments(file,BluePixelChannel,"blue",MagickFalse,
             channel_moments);
           break;
         }
         case CMYKColorspace:
         {
-          (void) PrintChannelMoments(file,CyanPixelChannel,"Cyan",MagickTrue,
+          (void) PrintChannelMoments(file,CyanPixelChannel,"cyan",MagickTrue,
             channel_moments);
-          (void) PrintChannelMoments(file,MagentaPixelChannel,"Magenta",
+          (void) PrintChannelMoments(file,MagentaPixelChannel,"magenta",
             MagickTrue,channel_moments);
-          (void) PrintChannelMoments(file,YellowPixelChannel,"Yellow",
+          (void) PrintChannelMoments(file,YellowPixelChannel,"yellow",
             MagickTrue,channel_moments);
-          (void) PrintChannelMoments(file,BlackPixelChannel,"Black",
+          (void) PrintChannelMoments(file,BlackPixelChannel,"black",
             MagickFalse,channel_moments);
           break;
         }
         case LinearGRAYColorspace:
         case GRAYColorspace:
         {
-          (void) PrintChannelMoments(file,GrayPixelChannel,"Gray",MagickFalse,
+          (void) PrintChannelMoments(file,GrayPixelChannel,"gray",MagickFalse,
             channel_moments);
           break;
         }
@@ -1304,37 +1304,37 @@
     {
       (void) FormatLocaleFile(file,"    \"channelFeatures\": {\n");
       if (image->alpha_trait != UndefinedPixelTrait)
-        (void) PrintChannelFeatures(file,AlphaPixelChannel,"Alpha",MagickTrue,
+        (void) PrintChannelFeatures(file,AlphaPixelChannel,"alpha",MagickTrue,
           channel_features);
       switch (image->colorspace)
       {
         case RGBColorspace:
         default:
         {
-          (void) PrintChannelFeatures(file,RedPixelChannel,"Red",MagickTrue,
+          (void) PrintChannelFeatures(file,RedPixelChannel,"red",MagickTrue,
             channel_features);
-          (void) PrintChannelFeatures(file,GreenPixelChannel,"Green",
+          (void) PrintChannelFeatures(file,GreenPixelChannel,"green",
             MagickTrue,channel_features);
-          (void) PrintChannelFeatures(file,BluePixelChannel,"Blue",MagickFalse,
+          (void) PrintChannelFeatures(file,BluePixelChannel,"blue",MagickFalse,
             channel_features);
           break;
         }
         case CMYKColorspace:
         {
-          (void) PrintChannelFeatures(file,CyanPixelChannel,"Cyan",MagickTrue,
+          (void) PrintChannelFeatures(file,CyanPixelChannel,"cyan",MagickTrue,
             channel_features);
-          (void) PrintChannelFeatures(file,MagentaPixelChannel,"Magenta",
+          (void) PrintChannelFeatures(file,MagentaPixelChannel,"magenta",
             MagickTrue,channel_features);
-          (void) PrintChannelFeatures(file,YellowPixelChannel,"Yellow",
+          (void) PrintChannelFeatures(file,YellowPixelChannel,"yellow",
             MagickTrue,channel_features);
-          (void) PrintChannelFeatures(file,BlackPixelChannel,"Black",
+          (void) PrintChannelFeatures(file,BlackPixelChannel,"black",
             MagickFalse,channel_features);
           break;
         }
         case LinearGRAYColorspace:
         case GRAYColorspace:
         {
-          (void) PrintChannelFeatures(file,GrayPixelChannel,"Gray",MagickFalse,
+          (void) PrintChannelFeatures(file,GrayPixelChannel,"gray",MagickFalse,
             channel_features);
           break;
         }
@@ -1350,7 +1350,7 @@
     x=0;
     if (image->alpha_trait != UndefinedPixelTrait)
       {
-        register const Quantum
+        const Quantum
           *p;
 
         p=(const Quantum *) NULL;
@@ -1381,7 +1381,7 @@
       }
   if (image->storage_class == PseudoClass)
     {
-      register PixelInfo
+      PixelInfo
         *magick_restrict p;
 
       (void) FormatLocaleFile(file,"    \"colormapEntries\": %.20g,\n",
@@ -1502,7 +1502,7 @@
       ImageInfo
         *image_info;
 
-      register char
+      char
         *p,
         *q;
 
@@ -1704,7 +1704,7 @@
     scene;
 
   size_t
-    imageListLength;
+    number_scenes;
 
   /*
     Open output image file.
@@ -1722,7 +1722,7 @@
   if (file == (FILE *) NULL)
     file=stdout;
   scene=0;
-  imageListLength=GetImageListLength(image);
+  number_scenes=GetImageListLength(image);
   do
   {
     if (scene == 0)
@@ -1737,7 +1737,7 @@
       }
     (void) WriteBlobString(image,",\n");
     image=SyncNextImageInList(image);
-    status=SetImageProgress(image,SaveImagesTag,scene++,imageListLength);
+    status=SetImageProgress(image,SaveImagesTag,scene++,number_scenes);
     if (status == MagickFalse)
       break;
   } while (image_info->adjoin != MagickFalse);
diff --git a/coders/json.h b/coders/json.h
index 1c3810d..1ebdc5d 100644
--- a/coders/json.h
+++ b/coders/json.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/jxl.c b/coders/jxl.c
index 1f441e7..d345006 100644
--- a/coders/jxl.c
+++ b/coders/jxl.c
@@ -12,11 +12,11 @@
 %                                                                             %
 %               Read/Write JPEG XL Lossless JPEG1 Recompression               %
 %                                                                             %
-%                            The JPEG XL Project                              %
-%                               September 2019                                %
+%                               Dirk Lemstra                                  %
+%                               December 2020                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -56,17 +56,70 @@
 #include "MagickCore/string_.h"
 #include "MagickCore/module.h"
 #if defined(MAGICKCORE_JXL_DELEGATE)
-#include <brunsli/decode.h>
-#include <brunsli/encode.h>
+#include <jxl/decode.h>
+#include <jxl/encode.h>
+#endif
+
+/*
+  Typedef declarations.
+*/
+typedef struct MemoryManagerInfo
+{
+  Image
+    *image;
+
+  ExceptionInfo
+    *exception;
+} MemoryManagerInfo;
 
 /*
   Forward declarations.
 */
 static MagickBooleanType
-  WriteJXLImage(const ImageInfo *,Image *);
-#endif
+  WriteJXLImage(const ImageInfo *,Image *,ExceptionInfo *);
 
 #if defined(MAGICKCORE_JXL_DELEGATE)
+static void *JXLAcquireMemory(void *opaque, size_t size)
+{
+  unsigned char
+    *data;
+
+  data=(unsigned char *) AcquireQuantumMemory(size,sizeof(*data));
+  if (data == (unsigned char *) NULL)
+    {
+      MemoryManagerInfo
+        *memory_manager_info;
+
+      memory_manager_info=(MemoryManagerInfo *) opaque;
+      (void) ThrowMagickException(memory_manager_info->exception,
+        GetMagickModule(),CoderError,"MemoryAllocationFailed","`%s'",
+        memory_manager_info->image->filename);
+    }
+  return(data);
+}
+
+static void JXLRelinquishMemory(void *magick_unused(opaque),void *address)
+{
+  magick_unreferenced(opaque);
+  (void) RelinquishMagickMemory(address);
+}
+
+static inline void JXLSetMemoryManager(JxlMemoryManager *memory_manager,
+  MemoryManagerInfo *memory_manager_info,Image *image,ExceptionInfo *exception)
+{
+  memory_manager_info->image=image;
+  memory_manager_info->exception=exception;
+  memory_manager->opaque=memory_manager_info;
+  memory_manager->alloc=JXLAcquireMemory;
+  memory_manager->free=JXLRelinquishMemory;
+}
+
+static inline void JXLSetFormat(Image *image,JxlPixelFormat *format)
+{
+  format->num_channels=(image->alpha_trait == BlendPixelTrait) ? 4 : 3;
+  format->data_type=(image->depth > 8) ? JXL_TYPE_FLOAT : JXL_TYPE_UINT8;
+}
+
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                             %
@@ -94,84 +147,233 @@
 %    o exception: return any errors or warnings in this structure.
 %
 */
-
-/*
-  Typedef declarations.
-*/
-typedef struct OutBuffer
+static inline OrientationType JXLOrientationToOrientation(
+  JxlOrientation orientation)
 {
-  unsigned char
-    *data;
-
-  size_t
-    size;
-} OutBuffer;
-
-static size_t AllocOutput(void* data, const uint8_t* buf, size_t count)
-{
-  OutBuffer *buffer=(OutBuffer *) data;
-  buffer->data=ResizeQuantumMemory(buffer->data,buffer->size+count,
-    sizeof(*buffer->data));
-  if (!buffer->data) return 0;
-  memcpy(buffer->data+buffer->size, buf, count);
-  buffer->size+=count;
-  return(count);
+  switch (orientation)
+  {
+    default:
+    case JXL_ORIENT_IDENTITY:
+      return TopLeftOrientation;
+    case JXL_ORIENT_FLIP_HORIZONTAL:
+      return TopRightOrientation;
+    case JXL_ORIENT_ROTATE_180:
+      return BottomRightOrientation;
+    case JXL_ORIENT_FLIP_VERTICAL:
+      return BottomLeftOrientation;
+    case JXL_ORIENT_TRANSPOSE:
+      return LeftTopOrientation;
+    case JXL_ORIENT_ROTATE_90_CW:
+      return RightTopOrientation;
+    case JXL_ORIENT_ANTI_TRANSPOSE:
+      return RightBottomOrientation;
+    case JXL_ORIENT_ROTATE_90_CCW:
+      return LeftBottomOrientation;
+  }
 }
 
 static Image *ReadJXLImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
   Image
-    *temp_image,
-    *result;
+    *image;
+
+  JxlPixelFormat
+    format;
+
+  JxlDecoderStatus
+    events_wanted;
+
+  JxlDecoder
+    *decoder;
+
+  JxlDecoderStatus
+    decoder_status;
+
+  JxlMemoryManager
+    memory_manager;
 
   MagickBooleanType
     status;
 
-  OutBuffer
-    b;
+  MemoryManagerInfo
+    memory_manager_info;
+
+  size_t
+    input_size;
 
   unsigned char
-    *jxl;
+    *input_buffer,
+    *output_buffer;
 
   /*
-    TODO: do we need an Image here? No pixels are needed, but OpenBlob
-    needs an Image.
+    Open image file.
   */
-  temp_image=AcquireImage(image_info, exception);
-  status=OpenBlob(image_info,temp_image,ReadBinaryBlobMode,exception);
-  jxl=NULL;
-  size_t jxlsize = 0;
-  if (status == MagickTrue)
+  assert(image_info != (const ImageInfo *) NULL);
+  assert(image_info->signature == MagickCoreSignature);
+  if (image_info->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
+      image_info->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  image=AcquireImage(image_info, exception);
+  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
+  if (status == MagickFalse)
+    {
+      image=DestroyImageList(image);
+      return((Image *) NULL);
+    }
+  JXLSetMemoryManager(&memory_manager,&memory_manager_info,image,exception);
+  decoder=JxlDecoderCreate(&memory_manager);
+  if (decoder == (JxlDecoder *) NULL)
+    ThrowReaderException(CoderError,"MemoryAllocationFailed");
+  events_wanted=JXL_DEC_BASIC_INFO;
+  if (image_info->ping == MagickFalse)
+    events_wanted|=JXL_DEC_FULL_IMAGE | JXL_DEC_COLOR_ENCODING;
+  if (JxlDecoderSubscribeEvents(decoder,events_wanted) != JXL_DEC_SUCCESS)
+    {
+      JxlDecoderDestroy(decoder);
+      ThrowReaderException(CoderError,"UnableToReadImageData");
+    }
+  input_buffer=AcquireQuantumMemory(MagickMaxBufferExtent,
+    sizeof(*input_buffer));
+  if (input_buffer == (unsigned char *) NULL)
+    {
+      JxlDecoderDestroy(decoder);
+      ThrowReaderException(CoderError,"MemoryAllocationFailed");
+    }
+  output_buffer=(unsigned char *) NULL;
+  memset(&format,0,sizeof(format));
+  input_size=0;
+  decoder_status=JXL_DEC_NEED_MORE_INPUT;
+  while ((decoder_status != JXL_DEC_SUCCESS) &&
+         (decoder_status != JXL_DEC_ERROR))
   {
-    jxlsize=(size_t) GetBlobSize(temp_image);
-    jxl=(unsigned char *) AcquireQuantumMemory(1,jxlsize);
-    size_t num_read=ReadBlob(temp_image,jxlsize,jxl);
-    if (num_read != jxlsize) status=MagickFalse;
+    const uint8_t
+      *p;
+
+    size_t
+      size;
+
+    size=input_size;
+    p=input_buffer;
+    decoder_status=JxlDecoderProcessInput(decoder,&p,&input_size);
+    if ((input_size > 0) && ((size-input_size) > 0))
+      (void) memmove(input_buffer,input_buffer+(size-input_size),input_size);
+    switch (decoder_status)
+    {
+      case JXL_DEC_NEED_MORE_INPUT:
+      {
+        input_size+=ReadBlob(image,MagickMaxBufferExtent-input_size,
+          input_buffer+input_size);
+        if (input_size == 0)
+          {
+            decoder_status=JXL_DEC_SUCCESS;
+            ThrowMagickException(exception,GetMagickModule(),CoderError,
+              "InsufficientImageDataInFile","`%s'",image->filename);
+            break;
+          }
+        break;
+      }
+      case JXL_DEC_BASIC_INFO:
+      {
+        JxlBasicInfo
+          basic_info;
+
+        decoder_status=JxlDecoderGetBasicInfo(decoder,&basic_info);
+        if (decoder_status != JXL_DEC_SUCCESS)
+          break;
+        /* For now we dont support images with an animation */
+        if (basic_info.have_animation == 1)
+          {
+            ThrowMagickException(exception,GetMagickModule(),
+              MissingDelegateError,"NoDecodeDelegateForThisImageFormat",
+              "`%s'",image->filename);
+            break;
+          }
+        image->columns=basic_info.xsize;
+        image->rows=basic_info.ysize;
+        image->depth=basic_info.bits_per_sample;
+        if (basic_info.alpha_bits != 0)
+          image->alpha_trait=BlendPixelTrait;
+        image->orientation=JXLOrientationToOrientation(basic_info.orientation);
+        decoder_status=JXL_DEC_BASIC_INFO;
+        break;
+      }
+      case JXL_DEC_COLOR_ENCODING:
+      {
+        size_t
+          profile_size;
+
+        StringInfo
+          *profile;
+
+        decoder_status=JxlDecoderGetICCProfileSize(decoder,&format,
+          JXL_COLOR_PROFILE_TARGET_ORIGINAL,&profile_size);
+        if (decoder_status != JXL_DEC_SUCCESS)
+          break;
+        profile=AcquireStringInfo(profile_size);
+        decoder_status=JxlDecoderGetColorAsICCProfile(decoder,&format,
+          JXL_COLOR_PROFILE_TARGET_ORIGINAL,GetStringInfoDatum(profile),
+          profile_size);
+        if (decoder_status != JXL_DEC_SUCCESS)
+          break;
+        decoder_status=JXL_DEC_COLOR_ENCODING;
+        break;
+      }
+      case JXL_DEC_NEED_IMAGE_OUT_BUFFER:
+      {
+        size_t
+          output_size;
+
+        JXLSetFormat(image,&format);
+        decoder_status=JxlDecoderImageOutBufferSize(decoder,&format,
+          &output_size);
+        if (decoder_status != JXL_DEC_SUCCESS)
+          break;
+        status=SetImageExtent(image,image->columns,image->rows,exception);
+        if (status == MagickFalse)
+          break;
+        output_buffer=AcquireQuantumMemory(output_size,sizeof(*output_buffer));
+        if (output_buffer == (unsigned char *) NULL)
+          {
+            ThrowMagickException(exception,GetMagickModule(),CoderError,
+              "MemoryAllocationFailed","`%s'",image->filename);
+            break;
+          }
+        decoder_status=JxlDecoderSetImageOutBuffer(decoder,&format,
+          output_buffer,output_size);
+        if (decoder_status != JXL_DEC_SUCCESS)
+          break;
+        decoder_status=JXL_DEC_NEED_IMAGE_OUT_BUFFER;
+      }
+      case JXL_DEC_FULL_IMAGE:
+        if (output_buffer == (unsigned char *) NULL)
+          {
+            ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
+              "UnableToReadImageData","`%s'",image->filename);
+            break;
+          }
+        status=ImportImagePixels(image,0,0,image->columns,image->rows,
+          image->alpha_trait == BlendPixelTrait ? "RGBA" : "RGB",
+          format.data_type == JXL_TYPE_FLOAT ? FloatPixel : CharPixel,
+          output_buffer,exception);
+        if (status == MagickFalse)
+          decoder_status=JXL_DEC_ERROR;
+        break;
+      case JXL_DEC_SUCCESS:
+      case JXL_DEC_ERROR:
+        break;
+      default:
+        decoder_status=JXL_DEC_ERROR;
+        break;
+    }
   }
-  (void) DestroyImage(temp_image);
-
-  b.data=NULL;
-  b.size=0;
-
-  if (status == MagickTrue)
-  {
-    status=DecodeBrunsli(jxlsize,jxl,&b,AllocOutput) == 1 ?
-        MagickTrue : MagickFalse;
-  }
-  (void) RelinquishMagickMemory(jxl);
-
-  result=NULL;
-
-  if (status == MagickTrue)
-  {
-    ImageInfo* temp_info=AcquireImageInfo();
-    SetImageInfoBlob(temp_info,b.data,b.size);
-    result=BlobToImage(temp_info,b.data,b.size,exception);
-    (void) DestroyImageInfo(temp_info);
-  }
-  (void) RelinquishMagickMemory(b.data);
-
-  return(result);
+  output_buffer=(unsigned char *) RelinquishMagickMemory(output_buffer);
+  input_buffer=(unsigned char *) RelinquishMagickMemory(input_buffer);
+  JxlDecoderDestroy(decoder);
+  if (decoder_status == JXL_DEC_ERROR)
+     ThrowReaderException(CorruptImageError,"UnableToReadImageData");
+  return(image);
 }
 #endif
 
@@ -208,9 +410,7 @@
   entry->decoder=(DecodeImageHandler *) ReadJXLImage;
   entry->encoder=(EncodeImageHandler *) WriteJXLImage;
 #endif
-  entry->note=ConstantString(
-    "JPEG1 recompression as specified in https://arxiv.org/pdf/1908.03565.pdf"
-    " page 135. Full JPEG XL support will be implemented in this coder later.");
+  entry->flags^=CoderAdjoinFlag;
   (void) RegisterMagickInfo(entry);
   return(MagickImageCoderSignature);
 }
@@ -266,62 +466,127 @@
 %
 %    o image:  The image.
 %
-%
 */
-static MagickBooleanType WriteJXLImage(const ImageInfo *image_info,
-    Image *image)
+static MagickBooleanType WriteJXLImage(const ImageInfo *image_info,Image *image,
+  ExceptionInfo *exception)
 {
-  ExceptionInfo
-    *exception;
+  JxlEncoder
+    *encoder;
 
-  Image
-    *temp_image;
+  JxlEncoderOptions
+    *encoder_options;
 
-  ImageInfo
-    *temp_info;
+  JxlEncoderStatus
+    encoder_status;
+
+  JxlMemoryManager
+    memory_manager;
+
+  JxlPixelFormat
+    format;
 
   MagickBooleanType
     status;
 
-  OutBuffer
-    b;
+  MemoryManagerInfo
+    memory_manager_info;
 
   size_t
-    jpegsize;
+    bytes_per_row;
 
   unsigned char
-    *jpeg;
-
-  exception=AcquireExceptionInfo();
+    *input_buffer;
 
   /*
-    TODO: can cloning the image be avoided? The pixels don't need to be cloned,
-    only filename or blob information. ImageToBlob overwrites this information.
+    Open output image file.
   */
-  temp_image=CloneImage(image, 0, 0, MagickTrue, exception);
-  temp_info=AcquireImageInfo();
-  (void) CopyMagickString(temp_image->magick,"JPG",MaxTextExtent);
-  jpeg=ImageToBlob(temp_info,temp_image,&jpegsize,exception);
-  (void) DestroyImage(temp_image);
-  (void) DestroyImageInfo(temp_info);
+  assert(image_info != (const ImageInfo *) NULL);
+  assert(image_info->signature == MagickCoreSignature);
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  assert(exception != (ExceptionInfo *) NULL);
+  assert(exception->signature == MagickCoreSignature);
+  status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
+  if (status == MagickFalse)
+    return(status);
+  JXLSetMemoryManager(&memory_manager,&memory_manager_info,image,exception);
+  encoder=JxlEncoderCreate(&memory_manager);
+  if (encoder == (JxlEncoder *) NULL)
+    ThrowWriterException(CoderError,"MemoryAllocationFailed");
+  memset(&format,0,sizeof(format));
+  JXLSetFormat(image,&format);
+  encoder_status=JxlEncoderSetDimensions(encoder,image->columns,image->rows);
+  if (encoder_status != JXL_ENC_SUCCESS)
+    {
+      JxlEncoderDestroy(encoder);
+      return(MagickFalse);
+    }
+  encoder_options=JxlEncoderOptionsCreate(encoder,(JxlEncoderOptions *) NULL);
+  if (encoder_options == (JxlEncoderOptions *) NULL)
+    {
+      JxlEncoderDestroy(encoder);
+      return(MagickFalse);
+    }
+  if (image->quality == 100)
+    JxlEncoderOptionsSetLossless(encoder_options,JXL_TRUE);
+  bytes_per_row=image->columns*
+    ((image->alpha_trait == BlendPixelTrait) ? 4 : 3)*
+    ((format.data_type == JXL_TYPE_FLOAT) ? sizeof(float) : sizeof(char));
+  input_buffer=AcquireQuantumMemory(bytes_per_row,image->rows*
+    sizeof(*input_buffer));
+  if (input_buffer == (unsigned char *) NULL)
+    {
+      JxlEncoderDestroy(encoder);
+      return(MagickFalse);
+    }
+  status=ExportImagePixels(image,0,0,image->columns,image->rows,
+    image->alpha_trait == BlendPixelTrait ? "RGBA" : "RGB",
+    format.data_type == JXL_TYPE_FLOAT ? FloatPixel : CharPixel,
+    input_buffer,exception);
+  if (status == MagickFalse)
+    {
+      input_buffer=(unsigned char *) RelinquishMagickMemory(input_buffer);
+      JxlEncoderDestroy(encoder);
+      return(MagickFalse);
+    }
+  encoder_status=JxlEncoderAddImageFrame(encoder_options,&format,input_buffer,
+    bytes_per_row*image->rows);
+  if (encoder_status == JXL_ENC_SUCCESS)
+    {
+      unsigned char
+        *output_buffer;
 
-  b.data=NULL;
-  b.size=0;
-  status=EncodeBrunsli(jpegsize,jpeg,&b,AllocOutput) == 1 ?
-      MagickTrue : MagickFalse;
-  if (status == MagickTrue)
-  {
-    status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
-  }
+      output_buffer=AcquireQuantumMemory(MagickMaxBufferExtent,
+        sizeof(*output_buffer));
+      if (output_buffer == (unsigned char *) NULL)
+        {
+          input_buffer=(unsigned char *) RelinquishMagickMemory(input_buffer);
+          JxlEncoderDestroy(encoder);
+          return(MagickFalse);
+        }
+      encoder_status=JXL_ENC_NEED_MORE_OUTPUT;
+      while (encoder_status == JXL_ENC_NEED_MORE_OUTPUT)
+      {
+        size_t
+          count;
 
-  if (status == MagickTrue)
-  {
-    WriteBlob(image,b.size,b.data);
-    CloseBlob(image);
-  }
-  (void) RelinquishMagickMemory(b.data);
+        unsigned char
+          *p;
 
-  if(exception) exception=DestroyExceptionInfo(exception);
+        count=MagickMaxBufferExtent;
+        p=output_buffer;
+        encoder_status=JxlEncoderProcessOutput(encoder,&p,&count);
+        (void) WriteBlob(image,MagickMaxBufferExtent-count,output_buffer);
+      }
+      output_buffer=(unsigned char *) RelinquishMagickMemory(output_buffer);
+    }
+  input_buffer=(unsigned char *) RelinquishMagickMemory(input_buffer);
+  JxlEncoderDestroy(encoder);
+  if (encoder_status != JXL_ENC_SUCCESS)
+    ThrowWriterException(CoderError,"UnableToWriteImageData");
+  (void) CloseBlob(image);
   return(status);
 }
 #endif
diff --git a/coders/jxl.h b/coders/jxl.h
index 4c44b06..2c56874 100644
--- a/coders/jxl.h
+++ b/coders/jxl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -16,10 +16,9 @@
 
 #include "coders/coders-private.h"
 
-// The pattern for JXL JPEG1 recompression for now, the main pattern will be
-// added when full decoder support is added.
 #define MagickJXLHeaders \
-  MagickCoderHeader("JXL", 0, "\x0a\x04\x42\xd2\xd5\x4e")
+  MagickCoderHeader("JXL", 0, "\xff\x0a") \
+  MagickCoderHeader("JXL", 0, "\x00\x00\x00\x0c\x4a\x58\x4c\x20\x0d\x0a\x87\x0a")
 
 #define MagickJXLAliases
 
diff --git a/coders/kernel.c b/coders/kernel.c
index fcd4c7f..9ba71e9 100644
--- a/coders/kernel.c
+++ b/coders/kernel.c
@@ -17,7 +17,7 @@
 %                                October 2020                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -190,10 +190,10 @@
   */
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/kernel.h b/coders/kernel.h
index 0b013eb..44b20ba 100644
--- a/coders/kernel.h
+++ b/coders/kernel.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/label.c b/coders/label.c
index e7c676a..b6c2503 100644
--- a/coders/label.c
+++ b/coders/label.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/label.h b/coders/label.h
index 786a54d..e792556 100644
--- a/coders/label.h
+++ b/coders/label.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mac.c b/coders/mac.c
index a159bb1..3071c98 100644
--- a/coders/mac.c
+++ b/coders/mac.c
@@ -18,7 +18,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -95,13 +95,13 @@
   MagickBooleanType
     status;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -163,9 +163,10 @@
     Convert MAC raster image to pixel packets.
   */
   length=(image->columns+7)/8;
-  pixels=(unsigned char *) AcquireQuantumMemory(length+1,sizeof(*pixels));
+  pixels=(unsigned char *) AcquireQuantumMemory(length+257,sizeof(*pixels));
   if (pixels == (unsigned char *) NULL) 
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+  (void) memset(pixels,0,(length+257)*sizeof(*pixels));
   p=pixels;
   offset=0;
   for (y=0; y < (ssize_t) image->rows; )
diff --git a/coders/mac.h b/coders/mac.h
index 899777f..fb3c612 100644
--- a/coders/mac.h
+++ b/coders/mac.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/magick.c b/coders/magick.c
index b485e2e..69f7946 100644
--- a/coders/magick.c
+++ b/coders/magick.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -13044,7 +13044,7 @@
   ImageInfo
     *blob_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -13231,10 +13231,10 @@
   size_t
     length;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   void
diff --git a/coders/magick.h b/coders/magick.h
index e766832..0b689ea 100644
--- a/coders/magick.h
+++ b/coders/magick.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/map.c b/coders/map.c
index a279ff7..cf55289 100644
--- a/coders/map.c
+++ b/coders/map.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -108,16 +108,16 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -353,14 +353,14 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
diff --git a/coders/map.h b/coders/map.h
index ef7a732..7d4d363 100644
--- a/coders/map.h
+++ b/coders/map.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mask.c b/coders/mask.c
index 59ccb2e..b7c6a3e 100644
--- a/coders/mask.c
+++ b/coders/mask.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -245,13 +245,13 @@
   mask_view=AcquireAuthenticCacheView(mask_image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
diff --git a/coders/mask.h b/coders/mask.h
index fd8b353..ea3e1b8 100644
--- a/coders/mask.h
+++ b/coders/mask.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mat.c b/coders/mat.c
index 2ddeb06..cb6e779 100644
--- a/coders/mat.c
+++ b/coders/mat.c
@@ -189,7 +189,7 @@
 {
   double f;
   int x;
-  register Quantum *q;
+  Quantum *q;
 
   if (MinVal >= 0)
     MinVal = -1;
@@ -252,7 +252,7 @@
 {
   double f;
   int x;
-  register Quantum *q;
+  Quantum *q;
 
   if (MinVal >= 0)
     MinVal = -1;
@@ -624,7 +624,7 @@
   QuantumFormatType
     format_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -752,7 +752,7 @@
     pixels=(unsigned char *) GetQuantumPixels(quantum_info);
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       count=ReadBlob(image,depth/8*image->columns,(char *) pixels);
@@ -874,7 +874,7 @@
 {
   Image *image, *image2=NULL,
    *rotated_image;
-  register Quantum *q;
+  Quantum *q;
 
   unsigned int status;
   MATHeader MATLAB_HDR;
diff --git a/coders/mat.h b/coders/mat.h
index 675c3c2..074ed68 100644
--- a/coders/mat.h
+++ b/coders/mat.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/matte.c b/coders/matte.c
index 0bf3ce6..0688782 100644
--- a/coders/matte.c
+++ b/coders/matte.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -164,13 +164,13 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
diff --git a/coders/matte.h b/coders/matte.h
index e6ef265..e81a9b7 100644
--- a/coders/matte.h
+++ b/coders/matte.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/meta.c b/coders/meta.c
index 8045895..c83a727 100644
--- a/coders/meta.c
+++ b/coders/meta.c
@@ -17,7 +17,7 @@
 %                                 July 2001                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -161,7 +161,7 @@
 
 static int stringnicmp(const char *p,const char *q,size_t n)
 {
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -176,10 +176,10 @@
     if ((*p == '\0') || (*q == '\0'))
       break;
     i=(*p);
-    if (islower(i))
+    if (islower((int) ((unsigned char) i)) != 0)
       i=LocaleUppercase(i);
     j=(*q);
-    if (islower(j))
+    if (islower((int) ((unsigned char) j)) != 0)
       j=LocaleUppercase(j);
     if (i != j)
       break;
@@ -197,7 +197,7 @@
   int
     value;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -242,10 +242,12 @@
   return(0);
 }
 
-static char *super_fgets(char **b, int *blen, Image *file)
+static char *super_fgets(char **b, size_t *blen, Image *file)
 {
   int
-    c,
+    c;
+
+  size_t
     len;
 
   unsigned char
@@ -259,34 +261,41 @@
     c=ReadBlobByte(file);
     if (c == EOF || c == '\n')
       break;
-    if ((q-p+1) >= (int) len)
+    if ((size_t) (q-p+1) >= len)
       {
-        int
+        size_t
           tlen;
 
-        tlen=q-p;
+        unsigned char
+          *buffer;
+
+        tlen=(size_t) (q-p);
         len<<=1;
-        p=(unsigned char *) ResizeQuantumMemory(p,(size_t) len+2UL,sizeof(*p));
-        *b=(char *) p;
-        if (p == (unsigned char *) NULL)
-          break;
+        buffer=(unsigned char *) ResizeQuantumMemory(p,len+2UL,sizeof(*p));
+        if (buffer == (unsigned char *) NULL)
+          {
+            p=(unsigned char *) RelinquishMagickMemory(p);
+            break;
+          }
+        p=buffer;
         q=p+tlen;
       }
     *q=(unsigned char) c;
   }
+  *b=(char *) p;
   *blen=0;
   if (p != (unsigned char *) NULL)
     {
-      int
+      size_t
         tlen;
 
-      tlen=q-p;
+      tlen=(size_t) (q-p);
       if (tlen == 0)
         return (char *) NULL;
       p[tlen] = '\0';
       *blen=++tlen;
     }
-  return((char *) p);
+  return(*b);
 }
 
 #define IPTC_ID 1028
@@ -312,13 +321,13 @@
   unsigned int
     recnum;
 
-  int
-    inputlen = MagickPathExtent;
-
   MagickOffsetType
     savedpos,
     currentpos;
 
+  size_t
+    inputlen = MagickPathExtent;
+
   ssize_t
     savedolen = 0L,
     outputlen = 0L;
@@ -328,7 +337,7 @@
 
   dataset = 0;
   recnum = 0;
-  line = (char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*line));
+  line = (char *) AcquireQuantumMemory(inputlen,sizeof(*line));
   if (line == (char *) NULL)
     return(-1);
   newstr = name = token = (char *) NULL;
@@ -339,13 +348,13 @@
     state=0;
     next=0;
 
-    token=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*token));
+    token=(char *) AcquireQuantumMemory(inputlen,sizeof(*token));
     if (token == (char *) NULL)
       break;
-    newstr=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*newstr));
+    newstr=(char *) AcquireQuantumMemory(inputlen,sizeof(*newstr));
     if (newstr == (char *) NULL)
       break;
-    while (Tokenizer(token_info,0,token,(size_t) inputlen,line,"","=","\"",0,
+    while (Tokenizer(token_info,0,token,inputlen,line,"","=","\"",0,
            &brkused,&next,&quoted)==0)
     {
       if (state == 0)
@@ -360,7 +369,7 @@
 
           state=0;
           next=0;
-          while (Tokenizer(token_info,0,newstr,(size_t) inputlen,token,"","#",
+          while (Tokenizer(token_info,0,newstr,inputlen,token,"","#",
             "", 0,&brkused,&next,&quoted)==0)
           {
             switch (state)
@@ -399,7 +408,7 @@
 
             next=0;
             len = (ssize_t) strlen(token);
-            while (Tokenizer(token_info,0,newstr,(size_t) inputlen,token,"","&",
+            while (Tokenizer(token_info,0,newstr,inputlen,token,"","&",
               "",0,&brkused,&next,&quoted)==0)
             {
               if (brkused && next > 0)
@@ -555,10 +564,12 @@
   return outputlen;
 }
 
-static char *super_fgets_w(char **b, int *blen, Image *file)
+static char *super_fgets_w(char **b, size_t *blen, Image *file)
 {
   int
-    c,
+    c;
+
+  size_t
     len;
 
   unsigned char
@@ -574,34 +585,38 @@
       break;
    if (EOFBlob(file))
       break;
-   if ((q-p+1) >= (int) len)
+   if ((size_t) (q-p+1) >= len)
       {
-        int
+        size_t
           tlen;
 
-        tlen=q-p;
+        unsigned char
+          *buffer;
+
+        tlen=(size_t) (q-p);
         len<<=1;
-        p=(unsigned char *) ResizeQuantumMemory(p,(size_t) (len+2),sizeof(*p));
-        *b=(char *) p;
-        if (p == (unsigned char *) NULL)
+        buffer=(unsigned char *) ResizeQuantumMemory(p,len+2,sizeof(*p));
+        if (buffer == (unsigned char *) NULL)
           break;
+        p=buffer;
         q=p+tlen;
       }
     *q=(unsigned char) c;
   }
+  *b=(char *) p;
   *blen=0;
   if ((*b) != (char *) NULL)
     {
-      int
+      size_t
         tlen;
 
-      tlen=q-p;
+      tlen=(size_t) (q-p);
       if (tlen == 0)
         return (char *) NULL;
-      p[tlen] = '\0';
+      p[tlen]='\0';
       *blen=++tlen;
     }
-  return((char *) p);
+  return(*b);
 }
 
 static ssize_t parse8BIMW(Image *ifile, Image *ofile)
@@ -624,7 +639,7 @@
   unsigned int
     recnum;
 
-  int
+  size_t
     inputlen = MagickPathExtent;
 
   ssize_t
@@ -640,7 +655,7 @@
 
   dataset = 0;
   recnum = 0;
-  line=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*line));
+  line=(char *) AcquireQuantumMemory(inputlen,sizeof(*line));
   if (line == (char *) NULL)
     return(-1);
   newstr = name = token = (char *) NULL;
@@ -651,13 +666,13 @@
     state=0;
     next=0;
 
-    token=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*token));
+    token=(char *) AcquireQuantumMemory(inputlen,sizeof(*token));
     if (token == (char *) NULL)
       break;
-    newstr=(char *) AcquireQuantumMemory((size_t) inputlen,sizeof(*newstr));
+    newstr=(char *) AcquireQuantumMemory(inputlen,sizeof(*newstr));
     if (newstr == (char *) NULL)
       break;
-    while (Tokenizer(token_info,0,token,(size_t) inputlen,line,"","=","\"",0,
+    while (Tokenizer(token_info,0,token,inputlen,line,"","=","\"",0,
       &brkused,&next,&quoted)==0)
     {
       if (state == 0)
@@ -672,7 +687,7 @@
 
           state=0;
           next=0;
-          while (Tokenizer(token_info,0,newstr,(size_t) inputlen,token,"","#",
+          while (Tokenizer(token_info,0,newstr,inputlen,token,"","#",
             "",0,&brkused,&next,&quoted)==0)
           {
             switch (state)
@@ -711,7 +726,7 @@
 
             next=0;
             len = (ssize_t) strlen(token);
-            while (Tokenizer(token_info,0,newstr,(size_t) inputlen,token,"","&",
+            while (Tokenizer(token_info,0,newstr,inputlen,token,"","&",
               "",0,&brkused,&next,&quoted)==0)
             {
               if (brkused && next > 0)
@@ -1180,7 +1195,7 @@
   size_t
     length;
 
-  void
+  unsigned char
     *blob;
 
   /*
@@ -1616,10 +1631,10 @@
   int
     c;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -1776,7 +1791,7 @@
   return(info_length);
 }
 
-static void formatString(Image *ofile, const char *s, int len)
+static void formatString(Image *ofile, const char *s, ssize_t len)
 {
   char
     temp[MagickPathExtent];
@@ -1800,7 +1815,7 @@
       (void) WriteBlobString(ofile,"&quot;");
       break;
     default:
-      if (isprint(c))
+      if (isprint((int) ((unsigned char) c)) != 0)
         (void) WriteBlobByte(ofile,(unsigned char) *s);
       else
         {
diff --git a/coders/meta.h b/coders/meta.h
index 4be842c..7c1f453 100644
--- a/coders/meta.h
+++ b/coders/meta.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/miff.c b/coders/miff.c
index cbcc50f..21b91d0 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -481,7 +481,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -550,9 +550,9 @@
     colors=0;
     image->depth=8UL;
     image->compression=NoCompression;
-    while ((isgraph(c) != MagickFalse) && (c != (int) ':'))
+    while ((isgraph((int) ((unsigned char) c)) != 0) && (c != (int) ':'))
     {
-      register char
+      char
         *p;
 
       if (c == (int) '{')
@@ -596,7 +596,7 @@
           c=ReadBlobByte(image);
         }
       else
-        if (isalnum(c) != MagickFalse)
+        if (isalnum((int) ((unsigned char) c)) != MagickFalse)
           {
             /*
               Get the keyword.
@@ -1127,7 +1127,7 @@
       }
     if (image->montage != (char *) NULL)
       {
-        register char
+        char
           *p;
 
         /*
@@ -1425,10 +1425,10 @@
     length=0;
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register ssize_t
+      ssize_t
         x;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
       if (status == MagickFalse)
@@ -1700,7 +1700,7 @@
     do
     {
       c=ReadBlobByte(image);
-    } while ((isgraph(c) == MagickFalse) && (c != EOF));
+    } while ((isgraph((int) ((unsigned char) c)) == 0) && (c != EOF));
     if (c != EOF)
       {
         /*
@@ -2032,7 +2032,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2439,7 +2439,7 @@
             case 32:
             default:
             {
-              register unsigned int
+              unsigned int
                 long_pixel;
 
               long_pixel=ScaleQuantumToLong((Quantum)
@@ -2455,7 +2455,7 @@
             }
             case 16:
             {
-              register unsigned short
+              unsigned short
                 short_pixel;
 
               short_pixel=ScaleQuantumToShort((Quantum)
@@ -2471,7 +2471,7 @@
             }
             case 8:
             {
-              register unsigned char
+              unsigned char
                 char_pixel;
 
               char_pixel=(unsigned char) ScaleQuantumToChar((Quantum)
@@ -2556,10 +2556,10 @@
     pixels=(unsigned char *) GetQuantumPixels(quantum_info);
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
diff --git a/coders/miff.h b/coders/miff.h
index 235be4a..d1d33ad 100644
--- a/coders/miff.h
+++ b/coders/miff.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mono.c b/coders/mono.c
index e823756..29eec3e 100644
--- a/coders/mono.c
+++ b/coders/mono.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -105,10 +105,10 @@
   MagickBooleanType
     status;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -288,10 +288,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
diff --git a/coders/mono.h b/coders/mono.h
index c355b6e..500a0a1 100644
--- a/coders/mono.h
+++ b/coders/mono.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mpc.c b/coders/mpc.c
index 9237417..407b935 100644
--- a/coders/mpc.c
+++ b/coders/mpc.c
@@ -17,7 +17,7 @@
 %                                 March 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -174,7 +174,7 @@
   MagickStatusType
     flags;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -228,9 +228,9 @@
     signature=GetMagickSignature((const StringInfo *) NULL);
     image->depth=8;
     image->compression=NoCompression;
-    while ((isgraph(c) != MagickFalse) && (c != (int) ':'))
+    while ((isgraph((int) ((unsigned char) c)) != 0) && (c != (int) ':'))
     {
-      register char
+      char
         *p;
 
       if (c == (int) '{')
@@ -275,7 +275,7 @@
           c=ReadBlobByte(image);
         }
       else
-        if (isalnum(c) != MagickFalse)
+        if (isalnum((int) ((unsigned char) c)) != MagickFalse)
           {
             /*
               Get the keyword.
@@ -292,7 +292,7 @@
             } while (c != EOF);
             *p='\0';
             p=options;
-            while (isspace(c) != 0)
+            while (isspace((int) ((unsigned char) c)) != 0)
               c=ReadBlobByte(image);
             if (c == (int) '=')
               {
@@ -324,7 +324,7 @@
                         }
                     }
                   if (*options != '{')
-                    if (isspace(c) != 0)
+                    if (isspace((int) ((unsigned char) c)) != 0)
                       break;
                 }
                 if (options == (char *) NULL)
@@ -775,7 +775,7 @@
           }
         else
           c=ReadBlobByte(image);
-      while (isspace(c) != 0)
+      while (isspace((int) ((unsigned char) c)) != 0)
         c=ReadBlobByte(image);
     }
     options=DestroyString(options);
@@ -804,7 +804,7 @@
       }
     if (image->montage != (char *) NULL)
       {
-        register char
+        char
           *p;
 
         /*
@@ -1006,7 +1006,7 @@
     do
     {
       c=ReadBlobByte(image);
-    } while ((isgraph(c) == MagickFalse) && (c != EOF));
+    } while ((isgraph((int) ((unsigned char) c)) == 0) && (c != EOF));
     if (c != EOF)
       {
         /*
@@ -1142,7 +1142,7 @@
     offset,
     scene;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/mpc.h b/coders/mpc.h
index 74e7371..14ab579 100644
--- a/coders/mpc.h
+++ b/coders/mpc.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mpr.c b/coders/mpr.c
index fcc8e5b..2790cf8 100644
--- a/coders/mpr.c
+++ b/coders/mpr.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/mpr.h b/coders/mpr.h
index 3473ebf..48032be 100644
--- a/coders/mpr.h
+++ b/coders/mpr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/msl.c b/coders/msl.c
index ea23291..68abd7d 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -19,7 +19,7 @@
 %                               December 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -660,7 +660,7 @@
   RectangleInfo
     geometry;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1955,10 +1955,10 @@
                         opacity,
                         y;
 
-                      register ssize_t
+                      ssize_t
                         x;
 
-                      register Quantum
+                      Quantum
                         *q;
 
                       CacheView
@@ -3418,7 +3418,7 @@
                       msl_info->image[n]=next_image;
                     else
                       {
-                        register Image
+                        Image
                           *p;
 
                         /*
@@ -4452,7 +4452,7 @@
                     name[MagickPathExtent],
                     filename[MagickPathExtent];
 
-                  register char
+                  char
                     *p;
 
                   StringInfo
@@ -4464,7 +4464,7 @@
                     if ((*p == ':') && (IsPathDirectory(keyword) < 0) &&
                         (IsPathAccessible(keyword) == MagickFalse))
                       {
-                        register char
+                        char
                           *q;
 
                         /*
@@ -7532,10 +7532,10 @@
   MSLInfo
     *msl_info;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
diff --git a/coders/msl.h b/coders/msl.h
index 305a473..c8174ae 100644
--- a/coders/msl.h
+++ b/coders/msl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mtv.c b/coders/mtv.c
index 118a63d..dda953c 100644
--- a/coders/mtv.c
+++ b/coders/mtv.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -103,13 +103,13 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -339,13 +339,13 @@
   MagickOffsetType
     scene;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
diff --git a/coders/mtv.h b/coders/mtv.h
index 4b4f7fa..52548ca 100644
--- a/coders/mtv.h
+++ b/coders/mtv.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/mvg.c b/coders/mvg.c
index 3e7db10..e75536f 100644
--- a/coders/mvg.c
+++ b/coders/mvg.c
@@ -17,7 +17,7 @@
 %                                 April 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -157,7 +157,7 @@
       char
         primitive[MagickPathExtent];
 
-      register char
+      char
         *p;
 
       SegmentInfo
diff --git a/coders/mvg.h b/coders/mvg.h
index 0667d3b..9296aaf 100644
--- a/coders/mvg.h
+++ b/coders/mvg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/null.c b/coders/null.c
index ff88c63..19746a0 100644
--- a/coders/null.c
+++ b/coders/null.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -106,10 +106,10 @@
   PixelInfo
     background;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
diff --git a/coders/null.h b/coders/null.h
index 474a1b3..d88616a 100644
--- a/coders/null.h
+++ b/coders/null.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ora.c b/coders/ora.c
index f5c64ff..43443ba 100644
--- a/coders/ora.c
+++ b/coders/ora.c
@@ -20,7 +20,7 @@
 %                                August 2020                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/ora.h b/coders/ora.h
index 21eeb8b..4219577 100644
--- a/coders/ora.h
+++ b/coders/ora.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/otb.c b/coders/otb.c
index 24fb927..3fec869 100644
--- a/coders/otb.c
+++ b/coders/otb.c
@@ -17,7 +17,7 @@
 %                               January 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -108,10 +108,10 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -307,10 +307,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
diff --git a/coders/otb.h b/coders/otb.h
index d516541..9cec029 100644
--- a/coders/otb.h
+++ b/coders/otb.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/palm.c b/coders/palm.c
index 6a3c674..32716de 100644
--- a/coders/palm.c
+++ b/coders/palm.c
@@ -191,7 +191,7 @@
 */
 static ssize_t FindColor(PixelInfo *packet)
 {
-  register ssize_t
+  ssize_t
     i;
 
   for (i=0; i < 256; i++)
@@ -248,11 +248,11 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -708,13 +708,13 @@
   QuantizeInfo
     *quantize_info;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
diff --git a/coders/palm.h b/coders/palm.h
index db3a8f2..4ebc6af 100644
--- a/coders/palm.h
+++ b/coders/palm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pango.c b/coders/pango.c
index ed4460e..d6b2cda 100644
--- a/coders/pango.c
+++ b/coders/pango.c
@@ -17,7 +17,7 @@
 %                                 March 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -161,7 +161,7 @@
   RectangleInfo
     page;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -434,10 +434,10 @@
   GetPixelInfo(image,&fill_color);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *q;
 
-    register ssize_t
+    ssize_t
       x;
 
     q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/pango.h b/coders/pango.h
index 315c91c..9add677 100644
--- a/coders/pango.h
+++ b/coders/pango.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pattern.c b/coders/pattern.c
index 846bfdd..889e1be 100644
--- a/coders/pattern.c
+++ b/coders/pattern.c
@@ -17,7 +17,7 @@
 %                                 May 2003                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -949,7 +949,7 @@
   ImageInfo
     *blob_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/pattern.h b/coders/pattern.h
index 5c2c053..0f83c29 100644
--- a/coders/pattern.h
+++ b/coders/pattern.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pcd.c b/coders/pcd.c
index 1ed5834..38bd402 100644
--- a/coders/pcd.c
+++ b/coders/pcd.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -147,14 +147,14 @@
   PCDTable
     *pcd_table[3];
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
-  register PCDTable
+  PCDTable
     *r;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -404,7 +404,7 @@
   MontageInfo
     *montage_info;
 
-  register Image
+  Image
     *p;
 
   /*
@@ -429,11 +429,11 @@
 static void Upsample(const size_t width,const size_t height,
   const size_t scaled_width,unsigned char *pixels)
 {
-  register ssize_t
+  ssize_t
     x,
     y;
 
-  register unsigned char
+  unsigned char
     *p,
     *q,
     *r;
@@ -505,14 +505,14 @@
   MagickSizeType
     number_pixels;
 
-  register ssize_t
+  ssize_t
     i,
     y;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *c1,
     *c2,
     *yy;
@@ -661,7 +661,7 @@
       MagickProgressMonitor
         progress_monitor;
 
-      register ssize_t
+      ssize_t
         j;
 
       /*
@@ -1001,11 +1001,11 @@
   RectangleInfo
     geometry;
 
-  register const Quantum
+  const Quantum
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1123,7 +1123,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image_info != (const ImageInfo *) NULL);
diff --git a/coders/pcd.h b/coders/pcd.h
index 50e8a65..3997eeb 100644
--- a/coders/pcd.h
+++ b/coders/pcd.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pcl.c b/coders/pcl.c
index a200af4..a6e64f3 100644
--- a/coders/pcl.c
+++ b/coders/pcl.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -179,10 +179,10 @@
     bounding_box,
     page;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     c;
 
   SegmentInfo
@@ -331,6 +331,8 @@
   options=AcquireString("");
   (void) FormatLocaleString(density,MagickPathExtent,"%gx%g",
     image->resolution.x,image->resolution.y);
+  if (image_info->ping != MagickFalse)
+    (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0");
   page.width=(size_t) floor(page.width*image->resolution.x/delta.x+0.5);
   page.height=(size_t) floor(page.height*image->resolution.y/delta.y+0.5);
   (void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
@@ -384,6 +386,13 @@
   {
     (void) CopyMagickString(image->filename,filename,MagickPathExtent);
     image->page=page;
+    if (image_info->ping != MagickFalse)
+      {
+        image->magick_columns*=image->resolution.x/2.0;
+        image->magick_rows*=image->resolution.y/2.0;
+        image->columns*=image->resolution.x/2.0;
+        image->rows*=image->resolution.y/2.0;
+      }
     next_image=SyncNextImageInList(image);
     if (next_image != (Image *) NULL)
       image=next_image;
@@ -491,11 +500,11 @@
     j,
     replacement;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   q=compress_pixels;
@@ -559,10 +568,10 @@
   int
     count;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -672,11 +681,11 @@
   MagickOffsetType
     scene;
 
-  register const Quantum *p;
+  const Quantum *p;
 
-  register ssize_t i, x;
+  ssize_t i, x;
 
-  register unsigned char *q;
+  unsigned char *q;
 
   size_t
     density,
@@ -863,7 +872,7 @@
       {
         case 1:
         {
-          register unsigned char
+          unsigned char
             bit,
             byte;
 
diff --git a/coders/pcl.h b/coders/pcl.h
index 54f68e2..550f6e6 100644
--- a/coders/pcl.h
+++ b/coders/pcl.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pcx.c b/coders/pcx.c
index 4332dc0..572ae06 100644
--- a/coders/pcx.c
+++ b/coders/pcx.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -234,16 +234,16 @@
   PCXInfo
     pcx_info;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p,
     *r;
 
@@ -568,7 +568,7 @@
           {
             case 1:
             {
-              register ssize_t
+              ssize_t
                 bit;
 
               for (x=0; x < ((ssize_t) image->columns-7); x+=8)
@@ -804,10 +804,10 @@
 static MagickBooleanType PCXWritePixels(PCXInfo *pcx_info,
   const unsigned char *pixels,Image *image)
 {
-  register const unsigned char
+  const unsigned char
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -875,14 +875,14 @@
   PCXInfo
     pcx_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1128,7 +1128,7 @@
           }
         else
           {
-            register unsigned char
+            unsigned char
               bit,
               byte;
 
diff --git a/coders/pcx.h b/coders/pcx.h
index a726850..151c855 100644
--- a/coders/pcx.h
+++ b/coders/pcx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pdb.c b/coders/pdb.c
index 6be3314..11fd2f3 100644
--- a/coders/pdb.c
+++ b/coders/pdb.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -288,13 +288,13 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -586,7 +586,7 @@
       int
         c;
 
-      register char
+      char
         *p;
 
       size_t
@@ -762,13 +762,13 @@
   QuantumInfo
     *quantum_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
diff --git a/coders/pdb.h b/coders/pdb.h
index 43ff305..5ab81a9 100644
--- a/coders/pdb.h
+++ b/coders/pdb.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pdf.c b/coders/pdf.c
index ebca897..f82d7c0 100644
--- a/coders/pdf.c
+++ b/coders/pdf.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -207,10 +207,10 @@
   MagickByteBuffer
     buffer;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -292,7 +292,7 @@
         SkipMagickByteBuffer(&buffer,strlen(SpotColor)+1);
         for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
         {
-          if ((isspace(c) != 0) || (c == '/') || ((i+1) == MagickPathExtent))
+          if ((isspace((int) ((unsigned char) c)) != 0) || (c == '/') || ((i+1) == MagickPathExtent))
             break;
           name[i++]=(char) c;
         }
@@ -376,7 +376,7 @@
   const char
     *q;
 
-  register char
+  char
     *p;
 
   static char
@@ -445,7 +445,7 @@
   RectangleInfo
     page;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -481,6 +481,7 @@
   */
   delta.x=DefaultResolution;
   delta.y=DefaultResolution;
+  (void) memset(&page,0,sizeof(page));
   if ((image->resolution.x == 0.0) || (image->resolution.y == 0.0))
     {
       flags=ParseGeometry(PSDensityGeometry,&geometry_info);
@@ -497,7 +498,6 @@
       if ((flags & SigmaValue) == 0)
         image->resolution.y=image->resolution.x;
     }
-  (void) memset(&page,0,sizeof(page));
   (void) ParseAbsoluteGeometry(PSPageGeometry,&page);
   if (image_info->page != (char *) NULL)
     (void) ParseAbsoluteGeometry(image_info->page,&page);
@@ -567,6 +567,7 @@
   file=AcquireUniqueFileResource(postscript_filename);
   if (file == -1)
     {
+      (void) RelinquishUniqueFileResource(input_filename);
       ThrowFileException(exception,FileOpenError,"UnableToCreateTemporaryFile",
         image_info->filename);
       CleanupPDFInfo(&pdf_info);
@@ -576,6 +577,7 @@
   if (write(file," ",1) != 1)
     {
       file=close(file)-1;
+      (void) RelinquishUniqueFileResource(input_filename);
       (void) RelinquishUniqueFileResource(postscript_filename);
       CleanupPDFInfo(&pdf_info);
       image=DestroyImage(image);
@@ -594,6 +596,7 @@
        delegate_info=GetDelegateInfo("ps:alpha",(char *) NULL,exception);
   if (delegate_info == (const DelegateInfo *) NULL)
     {
+      (void) RelinquishUniqueFileResource(input_filename);
       (void) RelinquishUniqueFileResource(postscript_filename);
       CleanupPDFInfo(&pdf_info);
       image=DestroyImage(image);
@@ -603,6 +606,8 @@
   options=AcquireString("");
   (void) FormatLocaleString(density,MagickPathExtent,"%gx%g",
     image->resolution.x,image->resolution.y);
+  if (image_info->ping != MagickFalse)
+    (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0");
   if ((image_info->page != (char *) NULL) || (fitPage != MagickFalse))
     (void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
       page.width,(double) page.height);
@@ -747,6 +752,13 @@
     (void) CopyMagickString(pdf_image->filename,filename,MagickPathExtent);
     (void) CopyMagickString(pdf_image->magick,image->magick,MagickPathExtent);
     pdf_image->page=page;
+    if (image_info->ping != MagickFalse)
+      {
+        pdf_image->magick_columns*=image->resolution.x/2.0;
+        pdf_image->magick_rows*=image->resolution.y/2.0;
+        pdf_image->columns*=image->resolution.x/2.0;
+        pdf_image->rows*=image->resolution.y/2.0;
+      }
     (void) CloneImageProfiles(pdf_image,image);
     (void) CloneImageProperties(pdf_image,image);
     next=SyncNextImageInList(pdf_image);
@@ -901,10 +913,10 @@
   char
     *destination;
 
-  register char
+  char
     *q;
 
-  register const char
+  const char
     *p;
 
   size_t
@@ -942,12 +954,12 @@
 
 static size_t UTF8ToUTF16(const unsigned char *utf8,wchar_t *utf16)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
   if (utf16 != (wchar_t *) NULL)
     {
-      register wchar_t
+      wchar_t
         *q;
 
       wchar_t
@@ -1031,7 +1043,7 @@
   *length=UTF8ToUTF16(source,(wchar_t *) NULL);
   if (*length == 0)
     {
-      register ssize_t
+      ssize_t
         i;
 
       /*
@@ -1104,7 +1116,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   assert(image_info != (const ImageInfo *) NULL);
@@ -1287,13 +1299,13 @@
     media_info,
     page_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
diff --git a/coders/pdf.h b/coders/pdf.h
index 2df5d9c..6762f8e 100644
--- a/coders/pdf.h
+++ b/coders/pdf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pes.c b/coders/pes.c
index 7b58636..670f640 100644
--- a/coders/pes.c
+++ b/coders/pes.c
@@ -17,7 +17,7 @@
 %                                 July 2009                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -452,7 +452,7 @@
   SegmentInfo
     bounds;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/pes.h b/coders/pes.h
index 6f4adbb..45f2107 100644
--- a/coders/pes.h
+++ b/coders/pes.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pgx.c b/coders/pgx.c
index e820c77..e952c31 100644
--- a/coders/pgx.c
+++ b/coders/pgx.c
@@ -17,7 +17,7 @@
 %                                 July 2016                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -213,7 +213,7 @@
     const void
       *stream;
 
-    register Quantum
+    Quantum
       *magick_restrict q;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -339,7 +339,7 @@
   QuantumInfo
     *quantum_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
   size_t
diff --git a/coders/pgx.h b/coders/pgx.h
index cd8f769..23986b3 100644
--- a/coders/pgx.h
+++ b/coders/pgx.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pict.c b/coders/pict.c
index 08c4667..a66540b 100644
--- a/coders/pict.c
+++ b/coders/pict.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -329,13 +329,13 @@
   const unsigned char *magick_restrict pixels,const unsigned int bits_per_pixel,
   unsigned char *scanline,MagickSizeType *bytes_per_line)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
   p=pixels;
@@ -402,13 +402,13 @@
   MagickSizeType
     number_pixels;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -586,13 +586,13 @@
 #define MaxCount  128
 #define MaxPackbitsRunlength  128
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -857,10 +857,10 @@
   Quantum
     index;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1143,7 +1143,7 @@
               source,
               destination;
 
-            register unsigned char
+            unsigned char
               *p;
 
             size_t
@@ -1688,10 +1688,10 @@
     size_rectangle,
     source_rectangle;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -2056,7 +2056,7 @@
       }
     else
       {
-        register unsigned char
+        unsigned char
           *blue,
           *green,
           *opacity,
diff --git a/coders/pict.h b/coders/pict.h
index 3644272..686bbb8 100644
--- a/coders/pict.h
+++ b/coders/pict.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pix.c b/coders/pix.c
index bb42bd7..744e1a7 100644
--- a/coders/pix.c
+++ b/coders/pix.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -100,10 +100,10 @@
     index,
     red;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
diff --git a/coders/pix.h b/coders/pix.h
index 80db7ba..d6d28fe 100644
--- a/coders/pix.h
+++ b/coders/pix.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/plasma.c b/coders/plasma.c
index de62ca6..1ef40bf 100644
--- a/coders/plasma.c
+++ b/coders/plasma.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -96,7 +96,7 @@
   RandomInfo *magick_restrict random_info,const double x,const double y,
   ExceptionInfo *exception)
 {
-  register Quantum
+  Quantum
     *q;
 
   q=GetAuthenticPixels(image,(ssize_t) (x+0.5),(ssize_t) (y+0.5),1,1,
@@ -124,13 +124,13 @@
   MagickStatusType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register size_t
+  size_t
     i;
 
   SegmentInfo
diff --git a/coders/plasma.h b/coders/plasma.h
index 00f2247..a158e48 100644
--- a/coders/plasma.h
+++ b/coders/plasma.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/png.c b/coders/png.c
index f444582..dadb28b 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -18,7 +18,7 @@
 %                               November 1997                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -908,7 +908,7 @@
             ssize_t
               y;
 
-            register ssize_t
+            ssize_t
               x;
 
             for (y=0; y < (ssize_t) image->rows; y++)
@@ -1448,7 +1448,7 @@
   png_size_t
     check;
 
-  register ssize_t
+  ssize_t
     i;
 
   i=0;
@@ -1599,7 +1599,7 @@
 
 static MngInfo *MngInfoFreeStruct(MngInfo *mng_info)
 {
-  register ssize_t
+  ssize_t
     i;
 
   if (mng_info == (MngInfo *) NULL)
@@ -1782,13 +1782,13 @@
   png_charp
     ep;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *dp;
 
-  register png_charp
+  png_charp
     sp;
 
   size_t
@@ -2227,14 +2227,14 @@
   ssize_t
     y;
 
-  register unsigned char
+  unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -3584,7 +3584,7 @@
 
     for (pass=0; pass < num_passes; pass++)
     {
-      register Quantum
+      Quantum
         *r;
 
       /*
@@ -4467,17 +4467,17 @@
     jng_alpha_filter_method,
     jng_alpha_interlace_method;
 
-  register const Quantum
+  const Quantum
     *s;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   unsigned int
@@ -5091,7 +5091,8 @@
 
   jng_image=DestroyImage(jng_image);
 
-  if ((image_info->ping == MagickFalse) && (jng_color_type >= 12))
+  if ((image_info->ping == MagickFalse) && (alpha_image != (Image *) NULL) &&
+      (jng_color_type >= 12))
     {
       if (jng_alpha_compression_method == 0)
         {
@@ -5351,10 +5352,10 @@
     mng_background_color;
 #endif
 
-  register unsigned char
+  unsigned char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -6180,7 +6181,7 @@
 
             else
               {
-                register ssize_t
+                ssize_t
                   j;
 
                 for (j=1; j < (ssize_t) length; j+=2)
@@ -6926,11 +6927,11 @@
                   m,
                   y;
 
-                register Quantum
+                Quantum
                   *n,
                   *q;
 
-                register ssize_t
+                ssize_t
                   x;
 
                 /* Allocate next image structure.  */
@@ -7065,7 +7066,7 @@
 
                   for (i=0; i < m; i++, yy++)
                   {
-                    register Quantum
+                    Quantum
                       *pixels;
 
                     assert(yy < (ssize_t) large_image->rows);
@@ -7221,7 +7222,7 @@
 
                 for (y=0; y < (ssize_t) image->rows; y++)
                 {
-                  register Quantum
+                  Quantum
                     *pixels;
 
                   q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -8176,7 +8177,7 @@
      allocated_length,
      description_length;
 
-   register ssize_t
+   ssize_t
      i;
 
    unsigned char
@@ -8496,7 +8497,7 @@
   PNGErrorInfo
     error_info;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -8802,7 +8803,7 @@
   /* Respect the -depth option */
   if (image->depth < 4)
     {
-       register Quantum
+       Quantum
          *r;
 
        if (image->depth > 2)
@@ -8996,10 +8997,10 @@
      semitransparent[260],
      transparent[260];
 
-   register const Quantum
+   const Quantum
      *r;
 
-   register Quantum
+   Quantum
      *q;
 
    if (logging != MagickFalse)
@@ -9787,7 +9788,7 @@
        else if (image_colors == 0 || image_colors > 256 ||
            image->colormap == NULL)
          {
-           register const Quantum
+           const Quantum
              *q;
 
            for (y=0; y < (ssize_t) image->rows; y++)
@@ -11427,7 +11428,7 @@
       QuantumType
         quantum_type;
 
-      register const Quantum
+      const Quantum
         *p;
 
       quantum_type=RedQuantum;
@@ -11485,7 +11486,7 @@
           (ping_bit_depth >= MAGICKCORE_QUANTUM_DEPTH)) &&
           (mng_info->IsPalette) && ping_have_color == MagickFalse)
         {
-          register const Quantum
+          const Quantum
             *p;
 
           for (pass=0; pass < num_passes; pass++)
@@ -11541,7 +11542,7 @@
 
       else
         {
-          register const Quantum
+          const Quantum
             *p;
 
           for (pass=0; pass < num_passes; pass++)
@@ -13190,7 +13191,7 @@
     {
       if (jng_alpha_compression_method==0)
         {
-          register ssize_t
+          ssize_t
             i;
 
           size_t
@@ -13446,7 +13447,7 @@
     need_defi,
     use_global_plte;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
diff --git a/coders/png.h b/coders/png.h
index dc21593..42da377 100644
--- a/coders/png.h
+++ b/coders/png.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pnm.c b/coders/pnm.c
index 771cfb9..bf524f1 100644
--- a/coders/pnm.c
+++ b/coders/pnm.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -116,7 +116,8 @@
   if ((*magick == (unsigned char) 'P') &&
       ((magick[1] == '1') || (magick[1] == '2') || (magick[1] == '3') ||
        (magick[1] == '4') || (magick[1] == '5') || (magick[1] == '6') ||
-       (magick[1] == '7') || (magick[1] == 'F') || (magick[1] == 'f')))
+       (magick[1] == '7') || (magick[1] == 'F') || (magick[1] == 'f') ||
+       (magick[1] == 'H') || (magick[1] == 'h')))
     return(MagickTrue);
   return(MagickFalse);
 }
@@ -154,7 +155,7 @@
   int
     c;
 
-  register char
+  char
     *p;
 
   /*
@@ -210,7 +211,7 @@
     Evaluate number.
   */
   value=0;
-  while (isdigit(c) != 0)
+  while (isdigit((int) ((unsigned char) c)) != 0)
   {
     if (value <= (unsigned int) (INT_MAX/10))
       {
@@ -227,6 +228,31 @@
   return(value);
 }
 
+static char *PNMString(Image *image,char *string,const size_t extent)
+{
+  int
+    c;
+
+  size_t
+    i;
+
+  for (i=0; i < (extent-1L); i++)
+  {
+    c=ReadBlobByte(image);
+    if (c == EOF)
+      {
+        if (i == 0)
+          return((char *) NULL);
+        break;
+      }
+    string[i]=c;
+    if (c == '\n' || c == '\r')
+      break;
+  }
+  string[i]='\0';
+  return(string);
+}
+
 static Image *ReadPNMImage(const ImageInfo *image_info,ExceptionInfo *exception)
 {
 #define ThrowPNMException(exception,message) \
@@ -315,14 +341,17 @@
         /*
           PBM, PGM, PPM, and PNM.
         */
+        if (ReadBlobByte(image) == '4')
+          image->alpha_trait=BlendPixelTrait;
         image->columns=(size_t) PNMInteger(image,&comment_info,10,exception);
         image->rows=(size_t) PNMInteger(image,&comment_info,10,exception);
-        if ((format == 'f') || (format == 'F'))
+        if ((format == 'f') || (format == 'F') || (format == 'h') ||
+            (format == 'H'))
           {
             char
-              scale[MagickPathExtent];
+              scale[32];
 
-            if (ReadBlobString(image,scale) != (char *) NULL)
+            if (PNMString(image,scale,sizeof(scale)) != (char *) NULL)
               quantum_scale=StringToDouble(scale,(char **) NULL);
           }
         else
@@ -343,7 +372,7 @@
         int
           c;
 
-        register char
+        char
           *p;
 
         /*
@@ -351,7 +380,7 @@
         */
         for (c=ReadBlobByte(image); c != EOF; c=ReadBlobByte(image))
         {
-          while (isspace(c) != 0)
+          while (isspace((int) ((unsigned char) c)) != 0)
             c=ReadBlobByte(image);
           if (c == '#')
             {
@@ -360,7 +389,7 @@
               */
               c=PNMComment(image,&comment_info,exception);
               c=ReadBlobByte(image);
-              while (isspace(c) != 0)
+              while (isspace((int) ((unsigned char) c)) != 0)
                 c=ReadBlobByte(image);
             }
           p=keyword;
@@ -369,14 +398,14 @@
             if ((size_t) (p-keyword) < (MagickPathExtent-1))
               *p++=c;
             c=ReadBlobByte(image);
-          } while (isalnum(c));
+          } while (isalnum((int) ((unsigned char) c)));
           *p='\0';
           if (LocaleCompare(keyword,"endhdr") == 0)
             break;
-          while (isspace(c) != 0)
+          while (isspace((int) ((unsigned char) c)) != 0)
             c=ReadBlobByte(image);
           p=value;
-          while (isalnum(c) || (c == '_'))
+          while (isalnum((int) ((unsigned char) c)) || (c == '_'))
           {
             if ((size_t) (p-value) < (MagickPathExtent-1))
               *p++=c;
@@ -474,10 +503,10 @@
         (void) SetImageColorspace(image,GRAYColorspace,exception);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register ssize_t
+          ssize_t
             x;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
           q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -517,10 +546,10 @@
         (void) SetImageColorspace(image,GRAYColorspace,exception);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register ssize_t
+          ssize_t
             x;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
           q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -557,10 +586,10 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register ssize_t
+          ssize_t
             x;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
           q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -618,7 +647,7 @@
           MagickBooleanType
             sync;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
           ssize_t
@@ -675,13 +704,13 @@
           MagickBooleanType
             sync;
 
-          register const unsigned char
+          const unsigned char
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
           ssize_t
@@ -783,13 +812,13 @@
           MagickBooleanType
             sync;
 
-          register const unsigned char
+          const unsigned char
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
           ssize_t
@@ -968,13 +997,13 @@
           MagickBooleanType
             sync;
 
-          register const unsigned char
+          const unsigned char
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
           ssize_t
@@ -1269,17 +1298,19 @@
         /*
           Convert PFM raster image to pixel packets.
         */
-        if (format == 'f')
-          (void) SetImageColorspace(image,GRAYColorspace,exception);
-        quantum_type=format == 'f' ? GrayQuantum : RGBQuantum;
+        if (format != 'f')
+          quantum_type=image->alpha_trait != UndefinedPixelTrait ? RGBAQuantum :
+            RGBQuantum;
+        else
+          {
+            (void) SetImageColorspace(image,GRAYColorspace,exception);
+            quantum_type=GrayQuantum;
+          }
         image->endian=quantum_scale < 0.0 ? LSBEndian : MSBEndian;
         image->depth=32;
         quantum_info=AcquireQuantumInfo(image_info,image);
         if (quantum_info == (QuantumInfo *) NULL)
           ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
-        status=SetQuantumDepth(image,quantum_info,32);
-        if (status == MagickFalse)
-          ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
         status=SetQuantumFormat(image,quantum_info,FloatingPointQuantumFormat);
         if (status == MagickFalse)
           ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1291,7 +1322,77 @@
           MagickBooleanType
             sync;
 
-          register Quantum
+          Quantum
+            *magick_restrict q;
+
+          ssize_t
+            offset;
+
+          size_t
+            length;
+
+          stream=ReadBlobStream(image,extent,pixels,&count);
+          if (count != (ssize_t) extent)
+            break;
+          if ((image->progress_monitor != (MagickProgressMonitor) NULL) &&
+              (image->previous == (Image *) NULL))
+            {
+              MagickBooleanType
+                proceed;
+
+              proceed=SetImageProgress(image,LoadImageTag,(MagickOffsetType)
+                row,image->rows);
+              if (proceed == MagickFalse)
+                break;
+            }
+          offset=row++;
+          q=QueueAuthenticPixels(image,0,(ssize_t) (image->rows-offset-1),
+            image->columns,1,exception);
+          if (q == (Quantum *) NULL)
+            break;
+          length=ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
+            quantum_type,(unsigned char *) stream,exception);
+          if (length != extent)
+            break;
+          sync=SyncAuthenticPixels(image,exception);
+          if (sync == MagickFalse)
+            break;
+        }
+        quantum_info=DestroyQuantumInfo(quantum_info);
+        SetQuantumImageType(image,quantum_type);
+        break;
+      }
+      case 'H':
+      case 'h':
+      {
+        /*
+          Convert PFM raster image to pixel packets.
+        */
+        if (format != 'h')
+          quantum_type=image->alpha_trait != UndefinedPixelTrait ? RGBAQuantum :
+            RGBQuantum;
+        else
+          {
+            (void) SetImageColorspace(image,GRAYColorspace,exception);
+            quantum_type=GrayQuantum;
+          }
+        image->endian=quantum_scale < 0.0 ? LSBEndian : MSBEndian;
+        image->depth=16;
+        quantum_info=AcquireQuantumInfo(image_info,image);
+        if (quantum_info == (QuantumInfo *) NULL)
+          ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
+        status=SetQuantumFormat(image,quantum_info,FloatingPointQuantumFormat);
+        if (status == MagickFalse)
+          ThrowPNMException(ResourceLimitError,"MemoryAllocationFailed");
+        SetQuantumScale(quantum_info,(double) QuantumRange*fabs(quantum_scale));
+        extent=GetQuantumExtent(image,quantum_info,quantum_type);
+        pixels=GetQuantumPixels(quantum_info);
+        for (y=0; y < (ssize_t) image->rows; y++)
+        {
+          MagickBooleanType
+            sync;
+
+          Quantum
             *magick_restrict q;
 
           ssize_t
@@ -1441,6 +1542,12 @@
   entry->mime_type=ConstantString("image/x-portable-greymap");
   entry->flags|=CoderDecoderSeekableStreamFlag;
   (void) RegisterMagickInfo(entry);
+  entry=AcquireMagickInfo("PNM","PHM","Portable half float format");
+  entry->decoder=(DecodeImageHandler *) ReadPNMImage;
+  entry->encoder=(EncodeImageHandler *) WritePNMImage;
+  entry->flags|=CoderEndianSupportFlag;
+  entry->flags|=CoderDecoderSeekableStreamFlag;
+  (void) RegisterMagickInfo(entry);
   entry=AcquireMagickInfo("PNM","PNM","Portable anymap");
   entry->decoder=(DecodeImageHandler *) ReadPNMImage;
   entry->encoder=(EncodeImageHandler *) WritePNMImage;
@@ -1541,7 +1648,7 @@
   QuantumType
     quantum_type;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1614,6 +1721,15 @@
           format='2';
         break;
       }
+      case 'H':
+      case 'h':
+      {
+        format='H';
+        if ((image_info->type != TrueColorType) &&
+            (SetImageGray(image,exception) != MagickFalse))
+          format='h';
+        break;
+      }
       case 'N':
       case 'n':
       {
@@ -1645,7 +1761,7 @@
     value=GetImageProperty(image,"comment",exception);
     if (value != (const char *) NULL)
       {
-        register const char
+        const char
           *p;
 
         /*
@@ -1739,10 +1855,10 @@
         q=pixels;
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1797,10 +1913,10 @@
         q=pixels;
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1867,10 +1983,10 @@
         q=pixels;
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1925,7 +2041,7 @@
       }
       case '4':
       {
-        register unsigned char
+        unsigned char
           *pixels;
 
         /*
@@ -1941,7 +2057,7 @@
         pixels=GetQuantumPixels(quantum_info);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1965,7 +2081,7 @@
       }
       case '5':
       {
-        register unsigned char
+        unsigned char
           *pixels;
 
         /*
@@ -1984,10 +2100,10 @@
         extent=GetQuantumExtent(image,quantum_info,GrayQuantum);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2083,7 +2199,7 @@
       }
       case '6':
       {
-        register unsigned char
+        unsigned char
           *pixels;
 
         /*
@@ -2103,10 +2219,10 @@
         extent=GetQuantumExtent(image,quantum_info,quantum_type);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2185,7 +2301,7 @@
       }
       case '7':
       {
-        register unsigned char
+        unsigned char
           *pixels;
 
         /*
@@ -2200,10 +2316,10 @@
         pixels=GetQuantumPixels(quantum_info);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register ssize_t
+          ssize_t
             x;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2435,7 +2551,7 @@
       case 'F':
       case 'f':
       {
-        register unsigned char
+        unsigned char
           *pixels;
 
         (void) WriteBlobString(image,image->endian == LSBEndian ? "-1.0\n" :
@@ -2451,7 +2567,7 @@
         pixels=GetQuantumPixels(quantum_info);
         for (y=(ssize_t) image->rows-1; y >= 0; y--)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -2471,6 +2587,47 @@
         quantum_info=DestroyQuantumInfo(quantum_info);
         break;
       }
+      case 'H':
+      case 'h':
+      {
+        unsigned char
+          *pixels;
+
+        (void) WriteBlobString(image,image->endian == LSBEndian ? "-1.0\n" :
+          "1.0\n");
+        image->depth=16;
+        quantum_type=format == 'h' ? GrayQuantum : RGBQuantum;
+        quantum_info=AcquireQuantumInfo(image_info,image);
+        if (quantum_info == (QuantumInfo *) NULL)
+          ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+        status=SetQuantumFormat(image,quantum_info,FloatingPointQuantumFormat);
+        if (status == MagickFalse)
+          ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+        pixels=GetQuantumPixels(quantum_info);
+        for (y=(ssize_t) image->rows-1; y >= 0; y--)
+        {
+          const Quantum
+            *magick_restrict p;
+
+          p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+          if (p == (const Quantum *) NULL)
+            break;
+          extent=ExportQuantumPixels(image,(CacheView *) NULL,quantum_info,
+            quantum_type,pixels,exception);
+          (void) WriteBlob(image,extent,pixels);
+          if (image->previous == (Image *) NULL)
+            {
+              status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
+                image->rows);
+              if (status == MagickFalse)
+                break;
+            }
+        }
+        quantum_info=DestroyQuantumInfo(quantum_info);
+        break;
+      }
+      default:
+        break;
     }
     if (GetNextImageInList(image) == (Image *) NULL)
       break;
diff --git a/coders/pnm.h b/coders/pnm.h
index b89792c..0a27828 100644
--- a/coders/pnm.h
+++ b/coders/pnm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
@@ -25,12 +25,15 @@
   MagickCoderHeader("PPM", 0, "P6") \
   MagickCoderHeader("PAM", 0, "P7") \
   MagickCoderHeader("PFM", 0, "PF") \
-  MagickCoderHeader("PFM", 0, "Pf")
+  MagickCoderHeader("PFM", 0, "Pf") \
+  MagickCoderHeader("PHM", 0, "PH") \
+  MagickCoderHeader("PHM", 0, "Ph")
 
 #define MagickPNMAliases \
   MagickCoderAlias("PNM", "PAM") \
   MagickCoderAlias("PNM", "PBM") \
   MagickCoderAlias("PNM", "PFM") \
+  MagickCoderAlias("PNM", "PHM") \
   MagickCoderAlias("PNM", "PGM") \
   MagickCoderAlias("PNM", "PPM")
 
@@ -42,4 +45,4 @@
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }
-#endif
\ No newline at end of file
+#endif
diff --git a/coders/ps.c b/coders/ps.c
index 54607c6..3925b31 100644
--- a/coders/ps.c
+++ b/coders/ps.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -179,7 +179,7 @@
     l,
     value;
 
-  register ssize_t
+  ssize_t
     i;
 
   l=0;
@@ -235,10 +235,10 @@
   MagickByteBuffer
     buffer;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -385,7 +385,7 @@
         i=0;
         for (c=ReadMagickByteBuffer(&buffer); c != EOF; c=ReadMagickByteBuffer(&buffer))
         {
-          if ((isspace(c) != 0) || ((i+1) == sizeof(name)))
+          if ((isspace((int) ((unsigned char) c)) != 0) || ((i+1) == sizeof(name)))
             break;
           name[i++]=(char) c;
         }
@@ -574,7 +574,7 @@
   RectangleInfo
     page;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -732,6 +732,8 @@
   options=AcquireString("");
   (void) FormatLocaleString(density,MagickPathExtent,"%gx%g",resolution.x,
     resolution.y);
+  if (image_info->ping != MagickFalse)
+    (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0");
   (void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
     page.width,(double) page.height);
   read_info=CloneImageInfo(image_info);
@@ -865,6 +867,13 @@
     if (info.rows != 0)
       postscript_image->magick_rows=info.rows;
     postscript_image->page=page;
+    if (image_info->ping != MagickFalse)
+      {
+        postscript_image->magick_columns*=image->resolution.x/2.0;
+        postscript_image->magick_rows*=image->resolution.y/2.0;
+        postscript_image->columns*=image->resolution.x/2.0;
+        postscript_image->rows*=image->resolution.y/2.0;
+      }
     (void) CloneImageProfiles(postscript_image,image);
     (void) CloneImageProperties(postscript_image,image);
     next=SyncNextImageInList(postscript_image);
@@ -1020,7 +1029,7 @@
 static inline unsigned char *PopHexPixel(const char hex_digits[][3],
   const size_t pixel,unsigned char *pixels)
 {
-  register const char
+  const char
     *hex;
 
   hex=hex_digits[pixel];
@@ -1372,14 +1381,14 @@
     media_info,
     page_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   SegmentInfo
@@ -1583,7 +1592,7 @@
             Quantum
               pixel;
 
-            register ssize_t
+            ssize_t
               x;
 
             ssize_t
diff --git a/coders/ps.h b/coders/ps.h
index 847c04a..a844b94 100644
--- a/coders/ps.h
+++ b/coders/ps.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ps2.c b/coders/ps2.c
index 98cbc87..16c10ca 100644
--- a/coders/ps2.c
+++ b/coders/ps2.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -420,13 +420,13 @@
     media_info,
     page_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
@@ -769,7 +769,7 @@
             MemoryInfo
               *pixel_info;
 
-            register unsigned char
+            unsigned char
               *q;
 
             /*
@@ -868,7 +868,7 @@
               MemoryInfo
                 *pixel_info;
 
-              register unsigned char
+              unsigned char
                 *q;
 
               /*
@@ -1019,7 +1019,7 @@
               MemoryInfo
                 *pixel_info;
 
-              register unsigned char
+              unsigned char
                 *q;
 
               /*
diff --git a/coders/ps2.h b/coders/ps2.h
index cc5b75f..5667199 100644
--- a/coders/ps2.h
+++ b/coders/ps2.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ps3.c b/coders/ps3.c
index 45affdb..02795ca 100644
--- a/coders/ps3.c
+++ b/coders/ps3.c
@@ -18,7 +18,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -244,13 +244,13 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -267,6 +267,7 @@
   if (*pixel_info == (MemoryInfo *) NULL)
     ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
   q=(unsigned char *) GetVirtualMemoryBlob(*pixel_info);
+  (void) memset(q,0,*length*sizeof(*q));
   for (y=0; y < (ssize_t) image->rows; y++)
   {
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -308,13 +309,13 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -385,13 +386,13 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -450,7 +451,7 @@
   MemoryInfo
     *pixel_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -854,7 +855,7 @@
     media_info,
     page_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   SegmentInfo
diff --git a/coders/ps3.h b/coders/ps3.h
index 1b2a10f..0ac43b7 100644
--- a/coders/ps3.h
+++ b/coders/ps3.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/psd-private.h b/coders/psd-private.h
index 617e726..b090cac 100644
--- a/coders/psd-private.h
+++ b/coders/psd-private.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/psd.c b/coders/psd.c
index 9691027..3196280 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -20,7 +20,7 @@
 %                                December 2013                                %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -325,10 +325,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -344,7 +344,7 @@
       double
         gamma;
 
-      register ssize_t
+      ssize_t
         i;
 
       gamma=QuantumScale*GetPixelAlpha(image, q);
@@ -404,10 +404,10 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -476,13 +476,13 @@
 #endif
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register Quantum
+    Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       x;
 
     if (status == MagickFalse)
@@ -563,7 +563,7 @@
   int
     pixel;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1003,13 +1003,13 @@
   Quantum
     pixel;
 
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -1216,7 +1216,7 @@
 static void Unpredict8Bit(const Image *image,unsigned char *pixels,
   const size_t count,const size_t row_size)
 {
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -1241,7 +1241,7 @@
 static void Unpredict16Bit(const Image *image,unsigned char *pixels,
   const size_t count,const size_t row_size)
 {
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -1267,11 +1267,11 @@
 static void Unpredict32Bit(const Image *image,unsigned char *pixels,
   unsigned char *output_pixels,const size_t row_size)
 {
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     y;
 
   size_t
@@ -1320,7 +1320,7 @@
   MagickBooleanType
     status;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -1328,7 +1328,7 @@
     packet_size,
     row_size;
 
-  register ssize_t
+  ssize_t
     y;
 
   unsigned char
@@ -1642,7 +1642,7 @@
   int
     channel_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (layer_info->channels < psd_info->min_channels)
@@ -1687,7 +1687,7 @@
 static void AttachPSDLayers(Image *image,LayerInfo *layer_info,
   ssize_t number_layers)
 {
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -1869,7 +1869,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2241,7 +2241,7 @@
   PSDCompressionType
     compression;
 
-  register ssize_t
+  ssize_t
     i;
 
   if ((image_info->number_scenes != 0) && (image_info->scene != 0))
@@ -2320,7 +2320,7 @@
   PSDInfo
     psd_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2603,6 +2603,12 @@
       image->background_color.alpha_trait=BlendPixelTrait;
       (void) SetImageBackgroundColor(image,exception);
       merged=MergeImageLayers(image,FlattenLayer,exception);
+      if (merged == (Image *) NULL)
+        {
+          (void) CloseBlob(image);
+          image=DestroyImageList(image);
+          return((Image *) NULL);
+        }
       ReplaceImageInList(&image,merged);
     }
   if (profile != (StringInfo *) NULL)
@@ -2781,11 +2787,11 @@
   int
     count;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
-  register unsigned char
+  unsigned char
     *q;
 
   unsigned char
@@ -2924,10 +2930,10 @@
   QuantumInfo
     *quantum_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3238,7 +3244,7 @@
     count,
     length;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -3307,7 +3313,7 @@
 
 static void RemoveICCProfileFromResourceBlock(StringInfo *bim_profile)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
   size_t
@@ -3330,7 +3336,7 @@
   datum=GetStringInfoDatum(bim_profile);
   for (p=datum; (p >= datum) && (p < (datum+length-16)); )
   {
-    register unsigned char
+    unsigned char
       *q;
 
     q=(unsigned char *) p;
@@ -3362,7 +3368,7 @@
 
 static void RemoveResolutionFromResourceBlock(StringInfo *bim_profile)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
   size_t
@@ -3385,7 +3391,7 @@
   datum=GetStringInfoDatum(bim_profile);
   for (p=datum; (p >= datum) && (p < (datum+length-16)); )
   {
-    register unsigned char
+    unsigned char
       *q;
 
     ssize_t
@@ -3439,7 +3445,7 @@
   MagickBooleanType
     found;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -3538,7 +3544,7 @@
     *layer_size_offsets,
     size_offset;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -3751,7 +3757,7 @@
   PSDInfo
     psd_info;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/psd.h b/coders/psd.h
index dcd31ce..ab36e11 100644
--- a/coders/psd.h
+++ b/coders/psd.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/pwp.c b/coders/pwp.c
index d09fbbc..8d4e4ef 100644
--- a/coders/pwp.c
+++ b/coders/pwp.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -142,10 +142,10 @@
   MagickBooleanType
     status;
 
-  register Image
+  Image
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/pwp.h b/coders/pwp.h
index b25bd51..c786a73 100644
--- a/coders/pwp.h
+++ b/coders/pwp.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/raw.c b/coders/raw.c
index cfef622..cac2ea0 100644
--- a/coders/raw.c
+++ b/coders/raw.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -207,13 +207,13 @@
       }
     for (y=0; y < (ssize_t) image->extract_info.height; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (count != (ssize_t) length)
@@ -462,7 +462,7 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
   size_t
diff --git a/coders/raw.h b/coders/raw.h
index 063413f..d96f796 100644
--- a/coders/raw.h
+++ b/coders/raw.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/rgb.c b/coders/rgb.c
index 324d048..e1be857 100644
--- a/coders/rgb.c
+++ b/coders/rgb.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -118,7 +118,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -231,13 +231,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -314,13 +314,13 @@
         {
           for (i=0; i < (ssize_t) (image->alpha_trait != UndefinedPixelTrait ? 4 : 3); i++)
           {
-            register const Quantum
+            const Quantum
               *magick_restrict p;
 
-            register Quantum
+            Quantum
               *magick_restrict q;
 
-            register ssize_t
+            ssize_t
               x;
 
             if (count != (ssize_t) length)
@@ -410,13 +410,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -462,13 +462,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -514,13 +514,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -568,13 +568,13 @@
           {
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -659,13 +659,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -729,13 +729,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -799,13 +799,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -871,13 +871,13 @@
             stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -1111,13 +1111,13 @@
       }
     for (y=0; y < (ssize_t) image->extract_info.height; y++)
     {
-      register const Quantum
+      const Quantum
         *magick_restrict p;
 
-      register Quantum
+      Quantum
         *magick_restrict q;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (count != (ssize_t) length)
@@ -1390,7 +1390,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1418,7 +1418,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1472,7 +1472,7 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1492,7 +1492,7 @@
           }
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1512,7 +1512,7 @@
           }
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1534,7 +1534,7 @@
           {
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1576,7 +1576,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1602,7 +1602,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1628,7 +1628,7 @@
           return(status);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -1656,7 +1656,7 @@
               return(status);
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/rgb.h b/coders/rgb.h
index d8a5d41..a222f7e 100644
--- a/coders/rgb.h
+++ b/coders/rgb.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/rgf.c b/coders/rgf.c
index 61708a4..904ca5f 100644
--- a/coders/rgf.c
+++ b/coders/rgf.c
@@ -17,7 +17,7 @@
 %                               August 2013                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -107,14 +107,14 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -313,10 +313,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
diff --git a/coders/rgf.h b/coders/rgf.h
index 7483213..5a6dc15 100644
--- a/coders/rgf.h
+++ b/coders/rgf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/rla.c b/coders/rla.c
index d2a4f0f..b14e91f 100644
--- a/coders/rla.c
+++ b/coders/rla.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -170,11 +170,11 @@
     offset,
     *scanlines;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
diff --git a/coders/rla.h b/coders/rla.h
index 89d4467..cab7a5a 100644
--- a/coders/rla.h
+++ b/coders/rla.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/rle.c b/coders/rle.c
index 1d40860..bfa0f70 100644
--- a/coders/rle.c
+++ b/coders/rle.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -164,16 +164,16 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
diff --git a/coders/rle.h b/coders/rle.h
index c08f1d7..c6b5259 100644
--- a/coders/rle.h
+++ b/coders/rle.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/scr.c b/coders/scr.c
index 60b5886..ec6c42e 100644
--- a/coders/scr.c
+++ b/coders/scr.c
@@ -17,7 +17,7 @@
 %                               October 2003                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -131,7 +131,7 @@
   MagickBooleanType
     status;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
diff --git a/coders/scr.h b/coders/scr.h
index 928d876..a87b0f3 100644
--- a/coders/scr.h
+++ b/coders/scr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/screenshot.c b/coders/screenshot.c
index 166b6d2..7da966f 100644
--- a/coders/screenshot.c
+++ b/coders/screenshot.c
@@ -17,7 +17,7 @@
 %                                 April 2014                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -140,10 +140,10 @@
     RectangleInfo
       geometry;
 
-    register Quantum
+    Quantum
       *q;
 
-    register ssize_t
+    ssize_t
       x;
 
     RGBQUAD
diff --git a/coders/screenshot.h b/coders/screenshot.h
index a414a4b..10dd6f1 100644
--- a/coders/screenshot.h
+++ b/coders/screenshot.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sct.c b/coders/sct.c
index df6b0ea..6c45628 100644
--- a/coders/sct.c
+++ b/coders/sct.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -140,11 +140,11 @@
   Quantum
     pixel;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
diff --git a/coders/sct.h b/coders/sct.h
index ce7f12d..639dcfd 100644
--- a/coders/sct.h
+++ b/coders/sct.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sfw.c b/coders/sfw.c
index 7923fd7..00db9b8 100644
--- a/coders/sfw.c
+++ b/coders/sfw.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -123,7 +123,7 @@
 static unsigned char *SFWScan(const unsigned char *p,const unsigned char *q,
   const unsigned char *target,const size_t length)
 {
-  register ssize_t
+  ssize_t
     i;
 
   while ((p+length) < q)
@@ -216,7 +216,7 @@
   MagickBooleanType
     status;
 
-  register unsigned char
+  unsigned char
     *header,
     *data;
 
diff --git a/coders/sfw.h b/coders/sfw.h
index 81aa889..8d47ebf 100644
--- a/coders/sfw.h
+++ b/coders/sfw.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sgi.c b/coders/sgi.c
index 4eabb5b..ab276b0 100644
--- a/coders/sgi.c
+++ b/coders/sgi.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -168,7 +168,7 @@
   ssize_t number_packets,unsigned char *packets,ssize_t number_pixels,
   unsigned char *pixels)
 {
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -268,14 +268,14 @@
   MemoryInfo
     *pixel_info;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *p;
 
   SGIInfo
@@ -852,7 +852,7 @@
   short
     runlength;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -923,14 +923,14 @@
   SGIInfo
     iris_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1043,7 +1043,7 @@
       if (image->depth <= 8)
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register unsigned char
+          unsigned char
             *q;
 
           q=(unsigned char *) pixels;
@@ -1057,7 +1057,7 @@
       else
         for (x=0; x < (ssize_t) image->columns; x++)
         {
-          register unsigned short
+          unsigned short
             *q;
 
           q=(unsigned short *) pixels;
@@ -1090,7 +1090,7 @@
             if (image->depth <= 8)
               for (x=0; x < (ssize_t) iris_info.columns; x++)
               {
-                register unsigned char
+                unsigned char
                   *q;
 
                 q=(unsigned char *) pixels;
@@ -1100,7 +1100,7 @@
             else
               for (x=0; x < (ssize_t) iris_info.columns; x++)
               {
-                register unsigned short
+                unsigned short
                   *q;
 
                 q=(unsigned short *) pixels;
diff --git a/coders/sgi.h b/coders/sgi.h
index 69be640..74801f3 100644
--- a/coders/sgi.h
+++ b/coders/sgi.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sixel.c b/coders/sixel.c
index c6d45d9..a6acef0 100644
--- a/coders/sixel.c
+++ b/coders/sixel.c
@@ -18,7 +18,7 @@
 %                    Based on kmiya's sixel (2014-03-28)                      %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -77,7 +77,7 @@
 /*
   Definitions
 */
-#define SIXEL_PALETTE_MAX 256
+#define SIXEL_PALETTE_MAX 1024
 #define SIXEL_OUTPUT_PACKET_SIZE 1024
 
 /*
@@ -87,6 +87,8 @@
 #define SIXEL_PALVAL(n,a,m) ((int) (((ssize_t) (n) * (a) + ((m) / 2)) / (m)))
 #define SIXEL_XRGB(r,g,b) SIXEL_RGB(SIXEL_PALVAL(r, 255, 100), SIXEL_PALVAL(g, 255, 100), SIXEL_PALVAL(b, 255, 100))
 
+typedef unsigned short sixel_pixel_t;
+
 /*
   Structure declarations.
 */
@@ -95,7 +97,7 @@
     int color;
     int left;
     int right;
-    unsigned char *map;
+    sixel_pixel_t *map;
 } sixel_node_t;
 
 typedef struct sixel_output {
@@ -229,11 +231,11 @@
 /* convert sixel data into indexed pixel bytes and palette data */
 MagickBooleanType sixel_decode(Image *image,
                                unsigned char              /* in */  *p,         /* sixel bytes */
-                               unsigned char              /* out */ **pixels,   /* decoded pixels */
+                               sixel_pixel_t              /* out */ **pixels,   /* decoded pixels */
                                size_t                     /* out */ *pwidth,    /* image width */
                                size_t                     /* out */ *pheight,   /* image height */
                                unsigned char              /* out */ **palette,  /* ARGB palette */
-                               size_t                     /* out */ *ncolors,    /* palette size (<= 256) */
+                               size_t                     /* out */ *ncolors,   /* palette size (<= SIXEL_PALETTE_MAX) */
   ExceptionInfo *exception)
 {
     int n, i, r, g, b, sixel_vertical_mask, c;
@@ -244,10 +246,10 @@
     int repeat_count, color_index, max_color_index = 2, background_color_index;
     int param[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
     int sixel_palet[SIXEL_PALETTE_MAX];
-    unsigned char *imbuf, *dmbuf;
+    sixel_pixel_t *imbuf, *dmbuf;
     int imsx, imsy;
     int dmsx, dmsy;
-    int y;
+    int x, y;
     size_t extent,offset;
 
     extent=strlen((char *) p);
@@ -264,7 +266,7 @@
     imsy = 2048;
     if (SetImageExtent(image,imsx,imsy,exception) == MagickFalse)
       return(MagickFalse);
-    imbuf = (unsigned char *) AcquireQuantumMemory(imsx , imsy);
+    imbuf = (sixel_pixel_t *) AcquireQuantumMemory(imsx * imsy, sizeof(sixel_pixel_t));
 
     if (imbuf == NULL) {
         return(MagickFalse);
@@ -291,7 +293,9 @@
         sixel_palet[n] = SIXEL_RGB(255, 255, 255);
     }
 
-    (void) memset(imbuf, background_color_index, (size_t) imsx * imsy);
+    for (i = 0; i < imsx * imsy; i++) {
+        imbuf[i] = background_color_index;
+    }
 
     while (*p != '\0') {
         if ((p[0] == '\033' && p[1] == 'P') || *p == 0x90) {
@@ -367,16 +371,16 @@
                 dmsy = imsy > attributed_pv ? imsy : attributed_pv;
                 if (SetImageExtent(image,dmsx,dmsy,exception) == MagickFalse)
                   break;
-                dmbuf = (unsigned char *) AcquireQuantumMemory(dmsx , dmsy);
-                if (dmbuf == (unsigned char *) NULL) {
-                    imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+                dmbuf = (sixel_pixel_t *) AcquireQuantumMemory(dmsx,dmsy*sizeof(sixel_pixel_t));
+                if (dmbuf == (sixel_pixel_t *) NULL) {
+                    imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
                     return (MagickFalse);
                 }
-                (void) memset(dmbuf, background_color_index, (size_t) dmsx * dmsy);
+                (void) memset(dmbuf, background_color_index, (size_t) dmsx * dmsy * sizeof(sixel_pixel_t));
                 for (y = 0; y < imsy; ++y) {
-                    (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, imsx);
+                    (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, imsx * sizeof(sixel_pixel_t));
                 }
-                imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+                imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
                 imsx = dmsx;
                 imsy = dmsy;
                 imbuf = dmbuf;
@@ -445,16 +449,16 @@
                 dmsy = ny;
                 if (SetImageExtent(image,dmsx,dmsy,exception) == MagickFalse)
                   break;
-                dmbuf = (unsigned char *) AcquireQuantumMemory(dmsx , dmsy);
-                if (dmbuf == (unsigned char *) NULL) {
-                    imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+                dmbuf = (sixel_pixel_t *) AcquireQuantumMemory(dmsx, dmsy*sizeof(sixel_pixel_t));
+                if (dmbuf == (sixel_pixel_t *) NULL) {
+                    imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
                     return (MagickFalse);
                 }
-                (void) memset(dmbuf, background_color_index, (size_t) dmsx * dmsy);
+                (void) memset(dmbuf, background_color_index, (size_t) dmsx * dmsy * sizeof(sixel_pixel_t));
                 for (y = 0; y < imsy; ++y) {
-                    (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, imsx);
+                    (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, imsx * sizeof(sixel_pixel_t));
                 }
-                imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+                imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
                 imsx = dmsx;
                 imsy = dmsy;
                 imbuf = dmbuf;
@@ -475,7 +479,7 @@
                             offset=(size_t) imsx * (posision_y + i) + posision_x;
                             if (offset >= (size_t) imsx * imsy)
                               {
-                                imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+                                imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
                                 return (MagickFalse);
                               }
                             imbuf[offset] = color_index;
@@ -504,10 +508,12 @@
                                 offset=(size_t) imsx * y + posision_x;
                                 if (offset + repeat_count >= (size_t) imsx * imsy)
                                   {
-                                    imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+                                    imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
                                     return (MagickFalse);
                                   }
-                                (void) memset(imbuf + offset, color_index, repeat_count);
+                                for (x = 0; x < repeat_count; x++) {
+                                    imbuf[offset+x] = color_index;
+                                }
                             }
                             if (max_x < (posision_x + repeat_count - 1)) {
                                 max_x = posision_x + repeat_count - 1;
@@ -542,17 +548,17 @@
         dmsy = max_y;
         if (SetImageExtent(image,dmsx,dmsy,exception) == MagickFalse)
           {
-            imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+            imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
             return (MagickFalse);
           }
-        if ((dmbuf = (unsigned char *) AcquireQuantumMemory(dmsx , dmsy)) == NULL) {
-            imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+        if ((dmbuf = (sixel_pixel_t *) AcquireQuantumMemory(dmsx,dmsy*sizeof(sixel_pixel_t))) == NULL) {
+            imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
             return (MagickFalse);
         }
         for (y = 0; y < dmsy; ++y) {
-            (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, dmsx);
+            (void) memcpy(dmbuf + dmsx * y, imbuf + imsx * y, dmsx * sizeof(sixel_pixel_t));
         }
-        imbuf = (unsigned char *) RelinquishMagickMemory(imbuf);
+        imbuf = (sixel_pixel_t *) RelinquishMagickMemory(imbuf);
         imsx = dmsx;
         imsy = dmsy;
         imbuf = dmbuf;
@@ -706,7 +712,7 @@
     return x;
 }
 
-static MagickBooleanType sixel_encode_impl(unsigned char *pixels, size_t width,size_t height,
+static MagickBooleanType sixel_encode_impl(sixel_pixel_t *pixels, size_t width,size_t height,
                   unsigned char *palette, size_t ncolors, int keycolor,
                   sixel_output_t *context)
 {
@@ -715,12 +721,12 @@
         context->node_free = np->next; \
         np=(sixel_node_t *) RelinquishMagickMemory(np); \
     } \
-    map = (unsigned char *) RelinquishMagickMemory(map)
+    map = (sixel_pixel_t *) RelinquishMagickMemory(map)
 
     int x, y, i, n, c;
     int left, right;
     int pix;
-    unsigned char *map;
+    sixel_pixel_t *map;
     sixel_node_t *np, *tp, top;
     int nwrite;
     size_t len;
@@ -733,10 +739,10 @@
     len = ncolors * width;
     context->active_palette = (-1);
 
-    if ((map = (unsigned char *)AcquireQuantumMemory(len, sizeof(unsigned char))) == NULL) {
+    if ((map = (sixel_pixel_t *)AcquireQuantumMemory(len, sizeof(sixel_pixel_t))) == NULL) {
         return (MagickFalse);
     }
-    (void) memset(map, 0, len);
+    (void) memset(map, 0, len * sizeof(sixel_pixel_t));
 
     if (context->has_8bit_control) {
         nwrite = sprintf((char *)context->buffer, "\x90" "0;0;0" "q");
@@ -773,7 +779,6 @@
             }
         }
     }
-
     for (y = i = 0; y < (ssize_t) height; y++) {
         for (x = 0; x < (ssize_t) width; x++) {
             pix = pixels[y * width + x];
@@ -876,7 +881,7 @@
         }
 
         i = 0;
-        (void) memset(map, 0, len);
+        (void) memset(map, 0, len * sizeof(sixel_pixel_t));
     }
 
     if (context->has_8bit_control) {
@@ -987,13 +992,13 @@
   MagickBooleanType
     status;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -1004,8 +1009,10 @@
     j,
     y;
 
+  sixel_pixel_t
+    *sixel_pixels;
+
   unsigned char
-    *sixel_pixels,
     *sixel_palette;
 
   /*
@@ -1055,12 +1062,12 @@
   /*
     Decode SIXEL
   */
-  sixel_pixels=(unsigned char *) NULL;
+  sixel_pixels=(sixel_pixel_t *) NULL;
   if (sixel_decode(image,(unsigned char *) sixel_buffer,&sixel_pixels,&image->columns,&image->rows,&sixel_palette,&image->colors,exception) == MagickFalse)
     {
       sixel_buffer=(char *) RelinquishMagickMemory(sixel_buffer);
-      if (sixel_pixels != (unsigned char *) NULL)
-        sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+      if (sixel_pixels != (sixel_pixel_t *) NULL)
+        sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
       ThrowReaderException(CorruptImageError,"CorruptImage");
     }
   sixel_buffer=(char *) RelinquishMagickMemory(sixel_buffer);
@@ -1069,14 +1076,14 @@
   status=SetImageExtent(image,image->columns,image->rows,exception);
   if (status == MagickFalse)
     {
-      sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+      sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
       sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette);
       return(DestroyImageList(image));
     }
 
   if (AcquireImageColormap(image,image->colors, exception) == MagickFalse)
     {
-      sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+      sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
       sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette);
       ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
     }
@@ -1108,7 +1115,7 @@
       }
       if (y < (ssize_t) image->rows)
         {
-          sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+          sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
           sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette);
           ThrowReaderException(CorruptImageError,"NotEnoughPixelData");
         }
@@ -1116,7 +1123,7 @@
   /*
     Relinquish resources.
   */
-  sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+  sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
   sixel_palette=(unsigned char *) RelinquishMagickMemory(sixel_palette);
   (void) CloseBlob(image);
   return(GetFirstImageInList(image));
@@ -1223,10 +1230,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -1238,7 +1245,9 @@
     *output;
 
   unsigned char
-    sixel_palette[256*3],
+    sixel_palette[SIXEL_PALETTE_MAX*3];
+
+  sixel_pixel_t
     *sixel_pixels;
 
   /*
@@ -1258,7 +1267,7 @@
   opacity=(-1);
   if (image->alpha_trait == UndefinedPixelTrait)
     {
-      if ((image->storage_class == DirectClass) || (image->colors > 256))
+      if ((image->storage_class == DirectClass) || (image->colors > SIXEL_PALETTE_MAX))
         (void) SetImageType(image,PaletteType,exception);
     }
   else
@@ -1270,7 +1279,7 @@
       /*
         Identify transparent colormap index.
       */
-      if ((image->storage_class == DirectClass) || (image->colors > 256))
+      if ((image->storage_class == DirectClass) || (image->colors > SIXEL_PALETTE_MAX))
         (void) SetImageType(image,PaletteBilevelAlphaType,exception);
       for (i=0; i < (ssize_t) image->colors; i++)
         if (image->colormap[i].alpha != OpaqueAlpha)
@@ -1325,9 +1334,9 @@
   output = sixel_output_create(image);
   if (output == (sixel_output_t *) NULL)
     ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
-  sixel_pixels=(unsigned char *) AcquireQuantumMemory(image->columns,
-    image->rows*sizeof(*sixel_pixels));
-  if (sixel_pixels == (unsigned char *) NULL)
+  sixel_pixels=(sixel_pixel_t *) AcquireQuantumMemory(image->columns * image->rows,
+    sizeof(sixel_pixel_t));
+  if (sixel_pixels == (sixel_pixel_t *) NULL)
     {
       output = (sixel_output_t *) RelinquishMagickMemory(output);
       ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1345,7 +1354,7 @@
   }
   status = sixel_encode_impl(sixel_pixels,image->columns,image->rows,
     sixel_palette,image->colors,-1,output);
-  sixel_pixels=(unsigned char *) RelinquishMagickMemory(sixel_pixels);
+  sixel_pixels=(sixel_pixel_t *) RelinquishMagickMemory(sixel_pixels);
   output=(sixel_output_t *) RelinquishMagickMemory(output);
   (void) CloseBlob(image);
   return(status);
diff --git a/coders/sixel.h b/coders/sixel.h
index 1de3333..2b438c6 100644
--- a/coders/sixel.h
+++ b/coders/sixel.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/stegano.c b/coders/stegano.c
index 0b87fec..eb34e26 100644
--- a/coders/stegano.c
+++ b/coders/stegano.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -111,10 +111,10 @@
   PixelInfo
     pixel;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
diff --git a/coders/stegano.h b/coders/stegano.h
index f4c82be..c7b1b87 100644
--- a/coders/stegano.h
+++ b/coders/stegano.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/sun.c b/coders/sun.c
index 985fe87..4c54adc 100644
--- a/coders/sun.c
+++ b/coders/sun.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -141,10 +141,10 @@
 static MagickBooleanType DecodeImage(const unsigned char *compressed_pixels,
   const size_t length,unsigned char *pixels,size_t extent)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register unsigned char
+  unsigned char
     *q;
 
   ssize_t
@@ -248,14 +248,14 @@
   MagickSizeType
     number_pixels;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -435,14 +435,15 @@
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
     if (HeapOverflowSanityCheckGetSize(sun_info.width,sun_info.depth,&bytes_per_line) != MagickFalse)
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
-    if (sun_info.length > GetBlobSize(image))
+    if ((sun_info.type != RT_ENCODED) && (sun_info.length > GetBlobSize(image)))
       ThrowReaderException(CorruptImageError,"InsufficientImageDataInFile");
     sun_data=(unsigned char *) AcquireQuantumMemory(sun_info.length,
       sizeof(*sun_data));
     if (sun_data == (unsigned char *) NULL)
       ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+    (void) memset(sun_data,0,sun_info.length*sizeof(*sun_data));
     count=(ssize_t) ReadBlob(image,sun_info.length,sun_data);
-    if (count != (ssize_t) sun_info.length)
+    if ((sun_info.type != RT_ENCODED) && (count != (ssize_t) sun_info.length))
       {
         sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
         ThrowReaderException(CorruptImageError,"UnableToReadImageData");
@@ -475,8 +476,7 @@
         sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
         ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
       }
-    (void) memset(sun_pixels,0,(pixels_length+image->rows)*
-      sizeof(*sun_pixels));
+    (void) memset(sun_pixels,0,(pixels_length+image->rows)*sizeof(*sun_pixels));
     if (sun_info.type == RT_ENCODED)
       {
         status=DecodeImage(sun_data,sun_info.length,sun_pixels,pixels_length);
@@ -489,7 +489,13 @@
       }
     else
       {
-        if (sun_info.length > pixels_length)
+        if (EOFBlob(image) != MagickFalse)
+          {
+            ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+              image->filename);
+            break;
+          }
+        if (sun_info.length > (pixels_length+image->rows))
           {
             sun_data=(unsigned char *) RelinquishMagickMemory(sun_data);
             sun_pixels=(unsigned char *) RelinquishMagickMemory(sun_pixels);
@@ -625,12 +631,6 @@
     if (image->storage_class == PseudoClass)
       (void) SyncImage(image,exception);
     sun_pixels=(unsigned char *) RelinquishMagickMemory(sun_pixels);
-    if (EOFBlob(image) != MagickFalse)
-      {
-        ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
-          image->filename);
-        break;
-      }
     /*
       Proceed to next image.
     */
@@ -787,10 +787,10 @@
   MagickSizeType
     number_pixels;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -892,7 +892,7 @@
     y=0;
     if (image->storage_class == DirectClass)
       {
-        register unsigned char
+        unsigned char
           *q;
 
         size_t
@@ -946,7 +946,7 @@
     else
       if (SetImageMonochrome(image,exception) != MagickFalse)
         {
-          register unsigned char
+          unsigned char
             bit,
             byte;
 
diff --git a/coders/sun.h b/coders/sun.h
index 21661bb..620a11e 100644
--- a/coders/sun.h
+++ b/coders/sun.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/svg.c b/coders/svg.c
index d1d7051..b59a7a1 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -18,7 +18,7 @@
 %                                March 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -652,7 +652,7 @@
 
 static void SVGStripString(const MagickBooleanType trim,char *message)
 {
-  register char
+  char
     *p,
     *q;
 
@@ -716,11 +716,11 @@
   char
     **tokens;
 
-  register const char
+  const char
     *p,
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -815,7 +815,7 @@
   char
     **tokens;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1254,7 +1254,7 @@
     *p,
     *value;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -2601,7 +2601,7 @@
         }
       if (LocaleCompare((const char *) name,"desc") == 0)
         {
-          register char
+          char
             *p;
 
           if (*svg_info->text == '\0')
@@ -2787,7 +2787,7 @@
             **tokens,
             *value;
 
-          register ssize_t
+          ssize_t
             j;
 
           size_t
@@ -2902,10 +2902,10 @@
   char
     *text;
 
-  register char
+  char
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   SVGInfo
@@ -3265,7 +3265,7 @@
         MemoryInfo
           *pixel_info;
 
-        register unsigned char
+        unsigned char
           *p;
 
         RsvgDimensionData
@@ -3278,7 +3278,7 @@
         GdkPixbuf
           *pixel_buffer;
 
-        register const guchar
+        const guchar
           *p;
 #endif
 
@@ -3288,10 +3288,10 @@
         PixelInfo
           fill_color;
 
-        register ssize_t
+        ssize_t
           x;
 
-        register Quantum
+        Quantum
           *q;
 
         RsvgHandle
@@ -3948,10 +3948,10 @@
     ImageType
       type;
 
-    register const Quantum
+    const Quantum
       *p;
 
-    register ssize_t
+    ssize_t
       i,
       x;
 
@@ -4021,7 +4021,7 @@
     MagickBooleanType
       status;
 
-    register char
+    char
       *p;
 
     size_t
@@ -4144,10 +4144,10 @@
   PrimitiveType
     primitive_type;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/svg.h b/coders/svg.h
index 9ba5387..400ae89 100644
--- a/coders/svg.h
+++ b/coders/svg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tga.c b/coders/tga.c
index baa80b9..fd72230 100644
--- a/coders/tga.c
+++ b/coders/tga.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -156,21 +156,21 @@
   Quantum
     index;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
   size_t
     base,
     flag,
-    offset,
     skip;
 
   ssize_t
     count,
+    offset,
     y;
 
   TGAInfo
@@ -734,16 +734,16 @@
   QuantumAny
     range;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -994,7 +994,7 @@
        offset+=2;
      else
        offset++;
-      if (offset >= image->rows)
+      if (offset >= (ssize_t) image->rows)
         {
           base++;
           offset=base;
diff --git a/coders/tga.h b/coders/tga.h
index 3e1a931..0346aad 100644
--- a/coders/tga.h
+++ b/coders/tga.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/thumbnail.c b/coders/thumbnail.c
index 1f7900a..59d9738 100644
--- a/coders/thumbnail.c
+++ b/coders/thumbnail.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -167,7 +167,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/thumbnail.h b/coders/thumbnail.h
index 8dd3479..9ddbd8c 100644
--- a/coders/thumbnail.h
+++ b/coders/thumbnail.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tiff.c b/coders/tiff.c
index 1eecf17..92d3072 100644
--- a/coders/tiff.c
+++ b/coders/tiff.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -254,8 +254,8 @@
     }
     case SEEK_CUR:
     {
-      if (((offset > 0) && (profile->offset > (SSIZE_MAX-offset))) ||
-          ((offset < 0) && (profile->offset < (-SSIZE_MAX-offset))))
+      if (((offset > 0) && (profile->offset > (LONG_MAX-offset))) ||
+          ((offset < 0) && (profile->offset < (LONG_MIN-offset))))
         {
           errno=EOVERFLOW;
           return(-1);
@@ -567,10 +567,10 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -838,7 +838,7 @@
   char
     value[MagickPathExtent];
 
-  register ssize_t
+  ssize_t
     i;
 
   tdir_t
@@ -852,7 +852,7 @@
     offset;
 
   void
-    *sans[2] = { NULL, NULL };
+    *sans[4] = { NULL, NULL, NULL, NULL };
 
   /*
     Read EXIF properties.
@@ -1066,7 +1066,7 @@
     position,
     offset;
 
-  register size_t
+  size_t
     i;
 
   TIFFMethodType
@@ -1202,7 +1202,7 @@
   PSDInfo
     info;
 
-  register ssize_t
+  ssize_t
     i;
 
   if (GetImageListLength(image) != 1)
@@ -1302,12 +1302,14 @@
     tiff_status;
 
   MagickBooleanType
-    more_frames,
-    status;
+    more_frames;
 
   MagickSizeType
     number_pixels;
 
+  MagickStatusType
+    status;
+
   MemoryInfo
     *pixel_info = (MemoryInfo *) NULL;
 
@@ -1317,12 +1319,9 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
-  size_t
-    pad;
-
   ssize_t
     y;
 
@@ -1590,8 +1589,10 @@
     if ((TIFFGetFieldDefaulted(tiff,TIFFTAG_XPOSITION,&x_position,sans) == 1) &&
         (TIFFGetFieldDefaulted(tiff,TIFFTAG_YPOSITION,&y_position,sans) == 1))
       {
-        image->page.x=(ssize_t) ceil(x_position*image->resolution.x-0.5);
-        image->page.y=(ssize_t) ceil(y_position*image->resolution.y-0.5);
+        image->page.x=CastDoubleToLong(ceil(x_position*
+          image->resolution.x-0.5));
+        image->page.y=CastDoubleToLong(ceil(y_position*
+          image->resolution.y-0.5));
       }
     if (TIFFGetFieldDefaulted(tiff,TIFFTAG_ORIENTATION,&orientation,sans) == 1)
       image->orientation=(OrientationType) orientation;
@@ -1843,13 +1844,12 @@
           ThrowTIFFException(ImageError,"WidthOrHeightExceedsLimit");
         method=ReadTileMethod;
       }
+    if (photometric == PHOTOMETRIC_LOGLUV)
+      method=ReadGenericMethod;
     if (image->compression == JPEGCompression)
       method=GetJPEGMethod(image,tiff,photometric,bits_per_sample,
         samples_per_pixel);
-    if (photometric == PHOTOMETRIC_LOGLUV)
-      method=ReadGenericMethod;
     quantum_info->endian=LSBEndian;
-    quantum_type=RGBQuantum;
     if (TIFFScanlineSize(tiff) <= 0)
       ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
     if ((1.0*TIFFScanlineSize(tiff)) > (2.53*GetBlobSize(image)))
@@ -1862,40 +1862,47 @@
       ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
     pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info);
     (void) memset(pixels,0,number_pixels*sizeof(uint32));
-    quantum_type=IndexQuantum;
-    pad=(size_t) MagickMax((ssize_t) samples_per_pixel-1,0);
-    if (image->alpha_trait != UndefinedPixelTrait)
+    quantum_type=GrayQuantum;
+    if (image->storage_class == PseudoClass)
+      quantum_type=IndexQuantum;
+    if (interlace != PLANARCONFIG_SEPARATE)
       {
-        if (image->storage_class == PseudoClass)
-          quantum_type=IndexAlphaQuantum;
-        else
-          quantum_type=samples_per_pixel == 1 ? AlphaQuantum : GrayAlphaQuantum;
-      }
-    else
-      if (image->storage_class != PseudoClass)
-        quantum_type=GrayQuantum;
-    if ((samples_per_pixel > 2) && (interlace != PLANARCONFIG_SEPARATE))
-      {
-        pad=(size_t) MagickMax((size_t) samples_per_pixel-3,0);
-        quantum_type=RGBQuantum;
+        size_t
+          pad;
+
+        pad=(size_t) MagickMax((ssize_t) samples_per_pixel-1,0);
         if (image->alpha_trait != UndefinedPixelTrait)
           {
-            quantum_type=RGBAQuantum;
-            pad=(size_t) MagickMax((size_t) samples_per_pixel-4,0);
+            if (image->storage_class == PseudoClass)
+              quantum_type=IndexAlphaQuantum;
+            else
+              quantum_type=samples_per_pixel == 1 ? AlphaQuantum :
+                GrayAlphaQuantum;
           }
-        if (image->colorspace == CMYKColorspace)
+        if ((samples_per_pixel > 2) && (interlace != PLANARCONFIG_SEPARATE))
           {
-            pad=(size_t) MagickMax((size_t) samples_per_pixel-4,0);
-            quantum_type=CMYKQuantum;
+            quantum_type=RGBQuantum;
+            pad=(size_t) MagickMax((size_t) samples_per_pixel-3,0);
             if (image->alpha_trait != UndefinedPixelTrait)
               {
-                quantum_type=CMYKAQuantum;
-                pad=(size_t) MagickMax((size_t) samples_per_pixel-5,0);
+                quantum_type=RGBAQuantum;
+                pad=(size_t) MagickMax((size_t) samples_per_pixel-4,0);
               }
+            if (image->colorspace == CMYKColorspace)
+              {
+                quantum_type=CMYKQuantum;
+                pad=(size_t) MagickMax((size_t) samples_per_pixel-4,0);
+                if (image->alpha_trait != UndefinedPixelTrait)
+                  {
+                    quantum_type=CMYKAQuantum;
+                    pad=(size_t) MagickMax((size_t) samples_per_pixel-5,0);
+                  }
+              }
+            status=SetQuantumPad(image,quantum_info,pad*((bits_per_sample+7) >>
+              3));
+            if (status == MagickFalse)
+              ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
           }
-        status=SetQuantumPad(image,quantum_info,pad*((bits_per_sample+7) >> 3));
-        if (status == MagickFalse)
-          ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
       }
     switch (method)
     {
@@ -1906,10 +1913,10 @@
         */
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           unsigned char
@@ -1949,7 +1956,7 @@
       }
       case ReadStripMethod:
       {
-        register unsigned char
+        unsigned char
           *p;
 
         size_t
@@ -1968,14 +1975,14 @@
         /*
           Convert stripped TIFF image.
         */
-        extent=TIFFStripSize(tiff);
+        extent=2*TIFFStripSize(tiff);
 #if defined(TIFF_VERSION_BIG)
         extent+=image->columns*sizeof(uint64);
 #else
         extent+=image->columns*sizeof(uint32);
 #endif
         strip_pixels=(unsigned char *) AcquireQuantumMemory(extent,
-          2*sizeof(*strip_pixels));
+          sizeof(*strip_pixels));
         if (strip_pixels == (unsigned char *) NULL)
           ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
         (void) memset(strip_pixels,0,extent*sizeof(*strip_pixels));
@@ -1994,16 +2001,18 @@
             case 2: quantum_type=BlueQuantum; break;
             case 3:
             {
+              quantum_type=AlphaQuantum;
               if (image->colorspace == CMYKColorspace)
                 quantum_type=BlackQuantum;
               break;
             }
             case 4: quantum_type=AlphaQuantum; break;
+            default: break;
           }
           rows_remaining=0;
           for (y=0; y < (ssize_t) image->rows; y++)
           {
-            register Quantum
+            Quantum
               *magick_restrict q;
 
             q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -2016,7 +2025,7 @@
                 if (strip_size == -1)
                   break;
                 rows_remaining=rows_per_strip;
-                if ((y+rows_per_strip) > image->rows)
+                if ((y+rows_per_strip) > (ssize_t) image->rows)
                   rows_remaining=(rows_per_strip-(y+rows_per_strip-
                     image->rows));
                 p=strip_pixels;
@@ -2044,7 +2053,7 @@
       }
       case ReadTileMethod:
       {
-        register unsigned char
+        unsigned char
           *p;
 
         size_t
@@ -2086,15 +2095,17 @@
             case 2: quantum_type=BlueQuantum; break;
             case 3:
             {
+              quantum_type=AlphaQuantum;
               if (image->colorspace == CMYKColorspace)
                 quantum_type=BlackQuantum;
               break;
             }
             case 4: quantum_type=AlphaQuantum; break;
+            default: break;
           }
           for (y=0; y < (ssize_t) image->rows; y+=rows)
           {
-            register ssize_t
+            ssize_t
               x;
 
             size_t
@@ -2117,7 +2128,7 @@
               p=tile_pixels;
               for (row=0; row < rows_remaining; row++)
               {
-                register Quantum
+                Quantum
                   *magick_restrict q;
 
                 q=GetAuthenticPixels(image,x,y+row,columns_remaining,1,
@@ -2151,7 +2162,7 @@
         MemoryInfo
           *generic_info = (MemoryInfo * ) NULL;
 
-        register uint32
+        uint32
           *p;
 
         uint32
@@ -2163,7 +2174,11 @@
         if (HeapOverflowSanityCheck(image->rows,sizeof(*pixels)) != MagickFalse)
           ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
         number_pixels=(MagickSizeType) image->columns*image->rows;
+#if defined(TIFF_VERSION_BIG)
+        number_pixels+=image->columns*sizeof(uint64);
+#else
         number_pixels+=image->columns*sizeof(uint32);
+#endif
         generic_info=AcquireVirtualMemory(number_pixels,sizeof(uint32));
         if (generic_info == (MemoryInfo *) NULL)
           ThrowTIFFException(ResourceLimitError,"MemoryAllocationFailed");
@@ -2173,10 +2188,10 @@
         p=pixels+(image->columns*image->rows)-1;
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register ssize_t
+          ssize_t
             x;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
           q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -2304,7 +2319,7 @@
   Image
    *image;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -2421,7 +2436,7 @@
     const char
       *p;
 
-    register ssize_t
+    ssize_t
       i;
 
     p=TIFFGetVersion();
@@ -2595,7 +2610,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   ssize_t
@@ -2889,10 +2904,10 @@
   image_view=AcquireAuthenticCacheView(image,exception);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *magick_restrict q;
 
-    register ssize_t
+    ssize_t
       x;
 
     q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -3004,10 +3019,10 @@
   int32
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p,
     *q;
 
@@ -3344,7 +3359,7 @@
   const char
     *value;
 
-  register ssize_t
+  ssize_t
     i;
 
   uint32
@@ -3434,7 +3449,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -4087,7 +4102,7 @@
               quantum_type=RGBAQuantum;
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4116,7 +4131,7 @@
             */
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4135,7 +4150,7 @@
               }
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4154,7 +4169,7 @@
               }
             for (y=0; y < (ssize_t) image->rows; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
               p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4174,7 +4189,7 @@
             if (image->alpha_trait != UndefinedPixelTrait)
               for (y=0; y < (ssize_t) image->rows; y++)
               {
-                register const Quantum
+                const Quantum
                   *magick_restrict p;
 
                 p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4208,7 +4223,7 @@
           (void) TransformImageColorspace(image,CMYKColorspace,exception);
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -4287,7 +4302,7 @@
              quantum_type=GrayQuantum;
         for (y=0; y < (ssize_t) image->rows; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
           p=GetVirtualPixels(image,0,y,image->columns,1,exception);
diff --git a/coders/tiff.h b/coders/tiff.h
index 4fd0514..f48dc05 100644
--- a/coders/tiff.h
+++ b/coders/tiff.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tile.c b/coders/tile.c
index 8909890..2fef80b 100644
--- a/coders/tile.c
+++ b/coders/tile.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/tile.h b/coders/tile.h
index e05155f..0b5126e 100644
--- a/coders/tile.h
+++ b/coders/tile.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tim.c b/coders/tim.c
index 1bf3435..9a281b3 100644
--- a/coders/tim.c
+++ b/coders/tim.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -109,16 +109,16 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
diff --git a/coders/tim.h b/coders/tim.h
index e284c39..ae9edc6 100644
--- a/coders/tim.h
+++ b/coders/tim.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/tim2.c b/coders/tim2.c
index 64a7bf7..e76241e 100644
--- a/coders/tim2.c
+++ b/coders/tim2.c
@@ -240,13 +240,13 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -511,7 +511,7 @@
     CSM
       csm;
 
-    register ssize_t
+    ssize_t
       i;
 
     unsigned char
diff --git a/coders/tim2.h b/coders/tim2.h
index 85625d2..97a2a51 100644
--- a/coders/tim2.h
+++ b/coders/tim2.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/ttf.c b/coders/ttf.c
index 271d04a..3a8b4fb 100644
--- a/coders/ttf.c
+++ b/coders/ttf.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -192,11 +192,11 @@
   PixelInfo
     background_color;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
diff --git a/coders/ttf.h b/coders/ttf.h
index c138336..5e0c758 100644
--- a/coders/ttf.h
+++ b/coders/ttf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/txt.c b/coders/txt.c
index 58b004f..b9bd08c 100644
--- a/coders/txt.c
+++ b/coders/txt.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -273,7 +273,7 @@
       draw_info=DestroyDrawInfo(draw_info);
       ThrowReaderException(TypeError,"UnableToGetTypeMetrics");
     }
-  page.y=(ssize_t) ceil((double) page.y+metrics.ascent-0.5);
+  page.y=CastDoubleToLong(ceil((double) page.y+metrics.ascent-0.5));
   (void) FormatLocaleString(geometry,MagickPathExtent,"%gx%g%+g%+g",(double)
     image->columns,(double) image->rows,(double) page.x,(double) page.y);
   (void) CloneString(&draw_info->geometry,geometry);
@@ -403,11 +403,11 @@
   QuantumAny
     range;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -458,7 +458,7 @@
     image->rows=height;
     if ((max_value == 0.0) || (max_value > 18446744073709551615.0))
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");
-    for (depth=1; (GetQuantumRange(depth)+1.0) < max_value; depth++) ;
+    for (depth=1; ((double) GetQuantumRange(depth)+1) < max_value; depth++) ;
     image->depth=depth;
     status=SetImageExtent(image,image->columns,image->rows,exception);
     if (status != MagickFalse)
@@ -574,8 +574,8 @@
           MagickMax(black+0.5,0.0),range);
         pixel.alpha=(MagickRealType) ScaleAnyToQuantum((QuantumAny)
           MagickMax(alpha+0.5,0.0),range);
-        q=GetAuthenticPixels(image,(ssize_t) x_offset,(ssize_t) y_offset,1,1,
-          exception);
+        q=GetAuthenticPixels(image,CastDoubleToLong(x_offset),
+          CastDoubleToLong(y_offset),1,1,exception);
         if (q == (Quantum *) NULL)
           {
             status=MagickFalse;
@@ -734,10 +734,10 @@
   PixelInfo
     pixel;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
diff --git a/coders/txt.h b/coders/txt.h
index 994acfb..5131259 100644
--- a/coders/txt.h
+++ b/coders/txt.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/uil.c b/coders/uil.c
index 6804fd2..452913c 100644
--- a/coders/uil.c
+++ b/coders/uil.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -179,10 +179,10 @@
   PixelInfo
     pixel;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
@@ -259,7 +259,7 @@
       colors=image->colors;
       if (transparent != MagickFalse)
         {
-          register Quantum
+          Quantum
             *q;
 
           i=0;
diff --git a/coders/uil.h b/coders/uil.h
index 1f8f839..ec498a3 100644
--- a/coders/uil.h
+++ b/coders/uil.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/url.c b/coders/url.c
index 19b586c..7e66358 100644
--- a/coders/url.c
+++ b/coders/url.c
@@ -18,7 +18,7 @@
 %                                March 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/url.h b/coders/url.h
index 67da234..d61c906 100644
--- a/coders/url.h
+++ b/coders/url.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/uyvy.c b/coders/uyvy.c
index ce52698..b751d7d 100644
--- a/coders/uyvy.c
+++ b/coders/uyvy.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -102,10 +102,10 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -299,10 +299,10 @@
     full,
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
diff --git a/coders/uyvy.h b/coders/uyvy.h
index 0df87f9..f1e3379 100644
--- a/coders/uyvy.h
+++ b/coders/uyvy.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/vicar.c b/coders/vicar.c
index 7c99e33..73ad155 100644
--- a/coders/vicar.c
+++ b/coders/vicar.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -165,7 +165,7 @@
   QuantumType
     quantum_type;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -208,16 +208,16 @@
   length=0;
   image->columns=0;
   image->rows=0;
-  while (isgraph(c) && ((image->columns == 0) || (image->rows == 0)))
+  while (isgraph((int) ((unsigned char) c)) && ((image->columns == 0) || (image->rows == 0)))
   {
-    if (isalnum(c) == MagickFalse)
+    if (isalnum((int) ((unsigned char) c)) == MagickFalse)
       {
         c=ReadBlobByte(image);
         count++;
       }
     else
       {
-        register char
+        char
           *p;
 
         /*
@@ -230,10 +230,10 @@
             *p++=c;
           c=ReadBlobByte(image);
           count++;
-        } while (isalnum(c) || (c == '_'));
+        } while (isalnum((int) ((unsigned char) c)) || (c == '_'));
         *p='\0';
         value_expected=MagickFalse;
-        while ((isspace(c) != 0) || (c == '='))
+        while ((isspace((int) ((unsigned char) c)) != 0) || (c == '='))
         {
           if (c == '=')
             value_expected=MagickTrue;
@@ -243,7 +243,7 @@
         if (value_expected == MagickFalse)
           continue;
         p=value;
-        while (isalnum(c))
+        while (isalnum((int) ((unsigned char) c)))
         {
           if ((size_t) (p-value) < (MagickPathExtent-1))
             *p++=c;
@@ -270,7 +270,7 @@
         if (LocaleCompare(keyword,"NL") == 0)
           image->rows=StringToUnsignedLong(value);
       }
-    while (isspace(c) != 0)
+    while (isspace((int) ((unsigned char) c)) != 0)
     {
       c=ReadBlobByte(image);
       count++;
@@ -442,7 +442,7 @@
   QuantumInfo
     *quantum_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
   size_t
diff --git a/coders/vicar.h b/coders/vicar.h
index 1ba2f7b..9ad8f30 100644
--- a/coders/vicar.h
+++ b/coders/vicar.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/vid.c b/coders/vid.c
index cab4dc2..e10330d 100644
--- a/coders/vid.c
+++ b/coders/vid.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -126,7 +126,7 @@
   RectangleInfo
     geometry;
 
-  register ssize_t
+  ssize_t
     i;
 
   /*
@@ -324,7 +324,7 @@
   MontageInfo
     *montage_info;
 
-  register Image
+  Image
     *p;
 
   /*
diff --git a/coders/vid.h b/coders/vid.h
index 2d91825..cb85acd 100644
--- a/coders/vid.h
+++ b/coders/vid.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/video.c b/coders/video.c
index ed80f26..bea7d18 100644
--- a/coders/video.c
+++ b/coders/video.c
@@ -17,7 +17,7 @@
 %                                 July 1999                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -398,7 +398,7 @@
   MagickBooleanType
     status;
 
-  register size_t
+  size_t
     i;
 
   size_t
@@ -491,10 +491,10 @@
   MagickBooleanType
     status;
 
-  register Image
+  Image
     *p;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/video.h b/coders/video.h
index adf9325..586d463 100644
--- a/coders/video.h
+++ b/coders/video.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/viff.c b/coders/viff.c
index 29f557f..9e1f2a5 100644
--- a/coders/viff.c
+++ b/coders/viff.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -223,16 +223,16 @@
   MagickSizeType
     number_pixels;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -950,16 +950,16 @@
   MemoryInfo
     *pixel_info;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -1190,7 +1190,7 @@
       else
         if (image->colors <= 2)
           {
-            register unsigned char
+            unsigned char
               bit,
               byte;
 
diff --git a/coders/viff.h b/coders/viff.h
index 0e0d5ce..f207bdc 100644
--- a/coders/viff.h
+++ b/coders/viff.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/vips.c b/coders/vips.c
index f3ff6db..7ad84c9 100644
--- a/coders/vips.c
+++ b/coders/vips.c
@@ -17,7 +17,7 @@
 %                                 April 2014                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -309,10 +309,10 @@
   Quantum
     pixel;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
@@ -624,10 +624,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
diff --git a/coders/vips.h b/coders/vips.h
index 9cdc0ba..d81dcb3 100644
--- a/coders/vips.h
+++ b/coders/vips.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/wbmp.c b/coders/wbmp.c
index 440b181..1074ff2 100644
--- a/coders/wbmp.c
+++ b/coders/wbmp.c
@@ -17,7 +17,7 @@
 %                               January 2000                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -127,10 +127,10 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -324,7 +324,7 @@
     flag,
     n;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
@@ -354,10 +354,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   ssize_t
diff --git a/coders/wbmp.h b/coders/wbmp.h
index 28ade8d..fc2cef5 100644
--- a/coders/wbmp.h
+++ b/coders/wbmp.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/webp.c b/coders/webp.c
index 282bbbe..16d8d30 100644
--- a/coders/webp.c
+++ b/coders/webp.c
@@ -17,7 +17,7 @@
 %                                 March 2011                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -149,10 +149,10 @@
 static inline uint32_t ReadWebPLSBWord(
   const unsigned char *magick_restrict data)
 {
-  register const unsigned char
+  const unsigned char
     *p;
 
-  register uint32_t
+  uint32_t
     value;
 
   p=data;
@@ -240,7 +240,7 @@
   int
     webp_status;
 
-  register unsigned char
+  unsigned char
     *p;
 
   size_t
@@ -255,11 +255,12 @@
     y;
 
   WebPDecBuffer
-    *magick_restrict webp_image = &configure->output;
+    *magick_restrict webp_image;
 
   MagickBooleanType
     status;
 
+  webp_image=&configure->output;
   if (is_first)
     {
       canvas_width=image->columns;
@@ -296,10 +297,10 @@
   p=(unsigned char *) webp_image->u.RGBA.rgba;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register Quantum
+    Quantum
       *q;
 
-    register ssize_t
+    ssize_t
       x;
 
     q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -307,8 +308,8 @@
       break;
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      if ((x >= x_offset && x < x_offset + image_width) &&
-          (y >= y_offset && y < y_offset + image_height))
+      if ((x >= x_offset && x < (ssize_t) (x_offset+image_width)) &&
+          (y >= y_offset && y < (ssize_t) (y_offset+image_height)))
         {
           SetPixelRed(image,ScaleCharToQuantum(*p++),q);
           SetPixelGreen(image,ScaleCharToQuantum(*p++),q);
@@ -760,24 +761,55 @@
 }
 #endif
 
-typedef struct PictureMemory {
-  MemoryInfo *pixel_info;
-  struct PictureMemory *next;
-} PictureMemory;
+static const char * WebPErrorCodeMessage(WebPEncodingError error_code)
+{
+  switch (error_code)
+  {
+    case VP8_ENC_OK:
+      return NULL;
+    case VP8_ENC_ERROR_OUT_OF_MEMORY:
+      return "out of memory";
+    case VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY:
+      return "bitstream out of memory";
+    case VP8_ENC_ERROR_NULL_PARAMETER:
+      return "NULL parameter";
+    case VP8_ENC_ERROR_INVALID_CONFIGURATION:
+      return "invalid configuration";
+    case VP8_ENC_ERROR_BAD_DIMENSION:
+      return "bad dimension";
+    case VP8_ENC_ERROR_PARTITION0_OVERFLOW:
+      return "partition 0 overflow (> 512K)";
+    case VP8_ENC_ERROR_PARTITION_OVERFLOW:
+      return "partition overflow (> 16M)";
+    case VP8_ENC_ERROR_BAD_WRITE:
+      return "bad write";
+    case VP8_ENC_ERROR_FILE_TOO_BIG:
+      return "file too big (> 4GB)";
+#if WEBP_ENCODER_ABI_VERSION >= 0x0100
+    case VP8_ENC_ERROR_USER_ABORT:
+      return "user abort";
+    case VP8_ENC_ERROR_LAST:
+      return "error last";
+#endif
+  }
+  return "unknown exception";
+}
 
-static MagickBooleanType WriteSingleWEBPImage(const ImageInfo *image_info,
-  Image *image,WebPPicture *picture,PictureMemory *picture_memory,
-  ExceptionInfo *exception)
+static MagickBooleanType WriteSingleWEBPPicture(const ImageInfo *image_info,
+  Image *image,WebPConfig *configure,WebPPicture *picture,ExceptionInfo *exception)
 {
   MagickBooleanType
-    status = MagickFalse;
+    status;
 
-  register uint32_t
+  uint32_t
     *magick_restrict q;
 
   ssize_t
     y;
 
+  MemoryInfo
+    *pixel_info;
+
 #if WEBP_ENCODER_ABI_VERSION >= 0x0100
   picture->progress_hook=WebPEncodeProgress;
   picture->user_data=(void *) image;
@@ -791,22 +823,23 @@
     Allocate memory for pixels.
   */
   (void) TransformImageColorspace(image,sRGBColorspace,exception);
-  picture_memory->pixel_info=AcquireVirtualMemory(image->columns,image->rows*
+  pixel_info=AcquireVirtualMemory(image->columns,image->rows*
     sizeof(*(picture->argb)));
 
-  if (picture_memory->pixel_info == (MemoryInfo *) NULL)
+  if (pixel_info == (MemoryInfo *) NULL)
     ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
-  picture->argb=(uint32_t *) GetVirtualMemoryBlob(picture_memory->pixel_info);
+  picture->argb=(uint32_t *) GetVirtualMemoryBlob(pixel_info);
   /*
     Convert image to WebP raster pixels.
   */
+  status=MagickFalse;
   q=picture->argb;
   for (y=0; y < (ssize_t) image->rows; y++)
   {
-    register const Quantum
+    const Quantum
       *magick_restrict p;
 
-    register ssize_t
+    ssize_t
       x;
 
     p=GetVirtualPixels(image,0,y,image->columns,1,exception);
@@ -826,35 +859,53 @@
     if (status == MagickFalse)
       break;
   }
-  return status;
+
+  if (status != MagickFalse)
+    status=(MagickBooleanType) WebPEncode(configure, picture);
+
+  RelinquishVirtualMemory(pixel_info);
+
+  if (status == MagickFalse)
+    (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
+      WebPErrorCodeMessage(picture->error_code),"`%s'",
+      image->filename);
+
+  return(status);
+}
+
+static MagickBooleanType WriteSingleWEBPImage(const ImageInfo *image_info,
+  Image *image,WebPConfig *configure,WebPMemoryWriter *writer,
+  ExceptionInfo *exception)
+{
+  MagickBooleanType
+    status;
+
+  WebPPicture
+    picture;
+
+  if (WebPPictureInit(&picture) == 0)
+    ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
+
+  picture.writer=WebPMemoryWrite;
+  picture.custom_ptr=writer;
+
+  status=WriteSingleWEBPPicture(image_info,image,configure,&picture,exception);
+  WebPPictureFree(&picture);
+
+  return(status);
 }
 
 #if defined(MAGICKCORE_WEBPMUX_DELEGATE)
-static void FreePictureMemoryList (PictureMemory* head) {
-  PictureMemory* next;
-  while(head != NULL) {
-    next = head->next;
-    if(head->pixel_info != NULL)
-      RelinquishVirtualMemory(head->pixel_info);
-    free(head);
-    head = next;
-  }
-}
-
 static MagickBooleanType WriteAnimatedWEBPImage(const ImageInfo *image_info,
-  Image *image,WebPConfig *configure,WebPMemoryWriter *writer_info,
+  Image *image,WebPConfig *configure,WebPData *webp_data,
   ExceptionInfo *exception)
 {
   Image
     *first_image;
 
-  PictureMemory
-    *current,
-    *head;
-
   size_t
-    effective_delta = 0,
-    frame_timestamp = 0;
+    effective_delta,
+    frame_timestamp;
 
   WebPAnimEncoder
     *enc;
@@ -862,83 +913,167 @@
   WebPAnimEncoderOptions
     enc_options;
 
-  WebPData
-    webp_data;
-
   WebPPicture
     picture;
 
-  WebPAnimEncoderOptionsInit(&enc_options);
-  if (image_info->verbose)
-    enc_options.verbose = 1;
+  MagickBooleanType
+    status;
 
-  image=CoalesceImages(image, exception);
-  first_image=image;
+  first_image=CoalesceImages(image,exception);
+  if (first_image == (Image *) NULL)
+    return(MagickFalse);
+  image=first_image;
+  effective_delta=0;
+  frame_timestamp=0;
+
+  (void) WebPAnimEncoderOptionsInit(&enc_options);
+  if (image_info->verbose)
+    enc_options.verbose=1;
   enc=WebPAnimEncoderNew((int) image->page.width,(int) image->page.height,
     &enc_options);
 
-  head=(PictureMemory *) calloc(sizeof(*head),1);
-  current=head;
-
+  status=MagickTrue;
   while (image != NULL)
   {
-    if (WebPPictureInit(&picture) == 0)
-      ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
+    status=(MagickBooleanType) WebPPictureInit(&picture);
+    if (status == MagickFalse)
+      {
+        (void) ThrowMagickException(exception,GetMagickModule(),
+          ResourceLimitError,"UnableToEncodeImageFile","`%s'",image->filename);
+        break;
+      }
 
-    WriteSingleWEBPImage(image_info, image, &picture, current, exception);
-    WebPAnimEncoderAdd(enc,&picture,(int) frame_timestamp,configure);
+    status=WriteSingleWEBPPicture(image_info,image,configure,&picture,
+      exception);
+    if (status == MagickFalse)
+      break;
 
-    effective_delta = image->delay*1000/image->ticks_per_second;
+    status=(MagickBooleanType) WebPAnimEncoderAdd(enc,&picture,
+      (int) frame_timestamp,configure);
+    WebPPictureFree(&picture);
+    if (status == MagickFalse)
+      {
+        (void) ThrowMagickException(exception,GetMagickModule(),
+          CoderError,WebPAnimEncoderGetError(enc),"`%s'",image->filename);
+        break;
+      }
+
+    effective_delta=image->delay*1000/image->ticks_per_second;
     if (effective_delta < 10)
-      effective_delta = 100; /* Consistent with gif2webp */
+      effective_delta=100; /* Consistent with gif2webp */
     frame_timestamp+=effective_delta;
 
-    image = GetNextImageInList(image);
-    current->next=(PictureMemory *) calloc(sizeof(*head), 1);
-    current = current->next;
+    image=GetNextImageInList(image);
   }
-  WebPAnimEncoderAdd(enc,NULL,(int) frame_timestamp,configure);
-  webp_data.bytes=writer_info->mem;
-  webp_data.size=writer_info->size;
-  WebPAnimEncoderAssemble(enc, &webp_data);
-  WebPMemoryWriterClear(writer_info);
-  writer_info->size=webp_data.size;
-  writer_info->mem=(unsigned char *) webp_data.bytes;
+
+  if (status != MagickFalse)
+    {
+      // add last null frame and assemble picture.
+      status=(MagickBooleanType) WebPAnimEncoderAdd(enc,(WebPPicture *) NULL,
+        (int) frame_timestamp,configure);
+      if (status != MagickFalse)
+        status=(MagickBooleanType) WebPAnimEncoderAssemble(enc,webp_data);
+
+      if (status == MagickFalse)
+          (void) ThrowMagickException(exception,GetMagickModule(),
+            CoderError,WebPAnimEncoderGetError(enc),"`%s'",
+            first_image->filename);
+    }
+
   WebPAnimEncoderDelete(enc);
   DestroyImageList(first_image);
-  FreePictureMemoryList(head);
+  return(status);
+}
+
+static MagickBooleanType WriteWEBPImageProfile(Image *image,
+  WebPData *webp_data,ExceptionInfo *exception) 
+{
+  const StringInfo
+    *icc_profile,
+    *exif_profile,
+    *xmp_profile;
+ 
+  WebPData
+    chunk;
+ 
+  WebPMux
+    *mux;
+ 
+  WebPMuxError
+    mux_error=WEBP_MUX_OK;
+ 
+  icc_profile=GetImageProfile(image,"ICC");
+  exif_profile=GetImageProfile(image,"EXIF");
+  xmp_profile=GetImageProfile(image,"XMP");
+
+  if (icc_profile == (StringInfo *) NULL 
+          && exif_profile == (StringInfo *) NULL 
+          && xmp_profile == (StringInfo *) NULL)
+    return(MagickTrue);
+
+  mux=WebPMuxCreate(webp_data, 1);
+  WebPDataClear(webp_data);
+
+  if (mux == NULL)
+      (void) ThrowMagickException(exception,GetMagickModule(),
+        ResourceLimitError,"UnableToEncodeImageFile","`%s'",image->filename);
+
+  // Clean up returned data
+  memset(webp_data, 0, sizeof(*webp_data));
+  if (icc_profile != (StringInfo *) NULL && (mux_error == WEBP_MUX_OK))
+    {
+      chunk.bytes=GetStringInfoDatum(icc_profile);
+      chunk.size=GetStringInfoLength(icc_profile);
+      mux_error=WebPMuxSetChunk(mux,"ICCP",&chunk,0);
+    }
+  if (exif_profile != (StringInfo *) NULL && (mux_error == WEBP_MUX_OK))
+    {
+      chunk.bytes=GetStringInfoDatum(exif_profile);
+      chunk.size=GetStringInfoLength(exif_profile);
+      mux_error=WebPMuxSetChunk(mux,"EXIF",&chunk,0);
+    }
+  if (xmp_profile != (StringInfo *) NULL && (mux_error == WEBP_MUX_OK))
+    {
+      chunk.bytes=GetStringInfoDatum(xmp_profile);
+      chunk.size=GetStringInfoLength(xmp_profile);
+      mux_error=WebPMuxSetChunk(mux,"XMP",&chunk,0);
+    }
+  if (mux_error == WEBP_MUX_OK)
+      mux_error=WebPMuxAssemble(mux,webp_data);
+  WebPMuxDelete(mux);
+
+  if (mux_error != WEBP_MUX_OK)
+    (void) ThrowMagickException(exception,GetMagickModule(),
+      ResourceLimitError,"UnableToEncodeImageFile","`%s'",image->filename);
   return(MagickTrue);
 }
 #endif
 
+static inline void SetIntegerOption(const ImageInfo *image_info,
+  const char *option,int *setting)
+{
+  const char
+    *value;
+
+  value=GetImageOption(image_info,option);
+  if (value != (const char *) NULL)
+    *setting=StringToInteger(value);
+}
+
 static MagickBooleanType WriteWEBPImage(const ImageInfo *image_info,
   Image *image,ExceptionInfo * exception)
 {
   const char
     *value;
 
-  int
-    webp_status;
-
   MagickBooleanType
     status;
 
-  WebPAuxStats
-    statistics;
-
   WebPConfig
     configure;
 
-#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
   WebPMemoryWriter
-    writer_info;
-#endif
-
-  WebPPicture
-    picture;
-
-  PictureMemory
-    memory = {0};
+    writer;
 
   /*
     Open output image file.
@@ -956,17 +1091,6 @@
     return(status);
   if (WebPConfigInit(&configure) == 0)
     ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
-  if (WebPPictureInit(&picture) == 0)
-    ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
-#if !defined(MAGICKCORE_WEBPMUX_DELEGATE)
-  picture.writer=WebPEncodeWriter;
-  picture.custom_ptr=(void *) image;
-#else
-  WebPMemoryWriterInit(&writer_info);
-  picture.writer=WebPMemoryWrite;
-  picture.custom_ptr=(&writer_info);
-#endif
-  picture.stats=(&statistics);
   if (image->quality != UndefinedCompressionQuality)
     configure.quality=(float) image->quality;
   if (image->quality >= 100)
@@ -975,9 +1099,6 @@
   if (value != (char *) NULL)
     configure.lossless=(int) ParseCommandOption(MagickBooleanOptions,
       MagickFalse,value);
-  value=GetImageOption(image_info,"webp:method");
-  if (value != (char *) NULL)
-    configure.method=StringToInteger(value);
   value=GetImageOption(image_info,"webp:image-hint");
   if (value != (char *) NULL)
     {
@@ -992,55 +1113,35 @@
         configure.image_hint=WEBP_HINT_GRAPH;
 #endif
     }
-  value=GetImageOption(image_info,"webp:target-size");
-  if (value != (char *) NULL)
-    configure.target_size=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:target-psnr");
-  if (value != (char *) NULL)
-    configure.target_PSNR=(float) StringToDouble(value,(char **) NULL);
-  value=GetImageOption(image_info,"webp:segments");
-  if (value != (char *) NULL)
-    configure.segments=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:sns-strength");
-  if (value != (char *) NULL)
-    configure.sns_strength=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:filter-strength");
-  if (value != (char *) NULL)
-    configure.filter_strength=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:filter-sharpness");
-  if (value != (char *) NULL)
-    configure.filter_sharpness=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:filter-type");
-  if (value != (char *) NULL)
-    configure.filter_type=StringToInteger(value);
   value=GetImageOption(image_info,"webp:auto-filter");
   if (value != (char *) NULL)
     configure.autofilter=(int) ParseCommandOption(MagickBooleanOptions,
       MagickFalse,value);
-  value=GetImageOption(image_info,"webp:alpha-compression");
+  value=GetImageOption(image_info,"webp:target-psnr");
   if (value != (char *) NULL)
-    configure.alpha_compression=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:alpha-filtering");
-  if (value != (char *) NULL)
-    configure.alpha_filtering=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:alpha-quality");
-  if (value != (char *) NULL)
-    configure.alpha_quality=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:pass");
-  if (value != (char *) NULL)
-    configure.pass=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:show-compressed");
-  if (value != (char *) NULL)
-    configure.show_compressed=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:preprocessing");
-  if (value != (char *) NULL)
-    configure.preprocessing=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:partitions");
-  if (value != (char *) NULL)
-    configure.partitions=StringToInteger(value);
-  value=GetImageOption(image_info,"webp:partition-limit");
-  if (value != (char *) NULL)
-    configure.partition_limit=StringToInteger(value);
+    configure.target_PSNR=(float) StringToDouble(value,(char **) NULL);
+  SetIntegerOption(image_info,"webp:alpha-compression",
+    &configure.alpha_compression);
+  SetIntegerOption(image_info,"webp:alpha-filtering",
+    &configure.alpha_filtering);
+  SetIntegerOption(image_info,"webp:alpha-quality",
+    &configure.alpha_quality);
+  SetIntegerOption(image_info,"webp:filter-strength",
+    &configure.filter_strength);
+  SetIntegerOption(image_info,"webp:filter-sharpness",
+    &configure.filter_sharpness);
+  SetIntegerOption(image_info,"webp:filter-type",&configure.filter_type);
+  SetIntegerOption(image_info,"webp:method",&configure.method);
+  SetIntegerOption(image_info,"webp:partitions",&configure.partitions);
+  SetIntegerOption(image_info,"webp:partition-limit",
+    &configure.partition_limit);
+  SetIntegerOption(image_info,"webp:pass",&configure.pass);
+  SetIntegerOption(image_info,"webp:preprocessing",&configure.preprocessing);
+  SetIntegerOption(image_info,"webp:segments",&configure.segments);
+  SetIntegerOption(image_info,"webp:show-compressed",
+    &configure.show_compressed);
+  SetIntegerOption(image_info,"webp:sns-strength",&configure.sns_strength);
+  SetIntegerOption(image_info,"webp:target-size",&configure.target_size);
 #if WEBP_ENCODER_ABI_VERSION >= 0x0201
   value=GetImageOption(image_info,"webp:emulate-jpeg-size");
   if (value != (char *) NULL)
@@ -1050,170 +1151,53 @@
   if (value != (char *) NULL)
     configure.low_memory=(int) ParseCommandOption(MagickBooleanOptions,
       MagickFalse,value);
-  value=GetImageOption(image_info,"webp:thread-level");
-  if (value != (char *) NULL)
-    configure.thread_level=StringToInteger(value);
+  SetIntegerOption(image_info,"webp:thread-level",&configure.thread_level);
 #endif
 #if WEBP_ENCODER_ABI_VERSION >= 0x020e
-  value=GetImageOption(image_info,"webp:use-sharp-yuv");
-  if (value != (char *) NULL)
-    configure.use_sharp_yuv=StringToInteger(value);
+  SetIntegerOption(image_info,"webp:near-lossless",&configure.near_lossless);
+  SetIntegerOption(image_info,"webp:use-sharp-yuv",&configure.use_sharp_yuv);
 #endif
   if (WebPValidateConfig(&configure) == 0)
     ThrowWriterException(ResourceLimitError,"UnableToEncodeImageFile");
-
-  WriteSingleWEBPImage(image_info,image,&picture,&memory,exception);
-
-#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
-  if ((image_info->adjoin != MagickFalse) &&
-      (GetPreviousImageInList(image) == (Image *) NULL) &&
-      (GetNextImageInList(image) != (Image *) NULL))
-    WriteAnimatedWEBPImage(image_info,image,&configure,&writer_info,exception);
-#endif
-
-  webp_status=WebPEncode(&configure,&picture);
-  if (webp_status == 0)
-    {
-      const char
-        *message;
-
-      switch (picture.error_code)
-      {
-        case VP8_ENC_ERROR_OUT_OF_MEMORY:
-        {
-          message="out of memory";
-          break;
-        }
-        case VP8_ENC_ERROR_BITSTREAM_OUT_OF_MEMORY:
-        {
-          message="bitstream out of memory";
-          break;
-        }
-        case VP8_ENC_ERROR_NULL_PARAMETER:
-        {
-          message="NULL parameter";
-          break;
-        }
-        case VP8_ENC_ERROR_INVALID_CONFIGURATION:
-        {
-          message="invalid configuration";
-          break;
-        }
-        case VP8_ENC_ERROR_BAD_DIMENSION:
-        {
-          message="bad dimension";
-          break;
-        }
-        case VP8_ENC_ERROR_PARTITION0_OVERFLOW:
-        {
-          message="partition 0 overflow (> 512K)";
-          break;
-        }
-        case VP8_ENC_ERROR_PARTITION_OVERFLOW:
-        {
-          message="partition overflow (> 16M)";
-          break;
-        }
-        case VP8_ENC_ERROR_BAD_WRITE:
-        {
-          message="bad write";
-          break;
-        }
-        case VP8_ENC_ERROR_FILE_TOO_BIG:
-        {
-          message="file too big (> 4GB)";
-          break;
-        }
-#if WEBP_ENCODER_ABI_VERSION >= 0x0100
-        case VP8_ENC_ERROR_USER_ABORT:
-        {
-          message="user abort";
-          break;
-        }
-#endif
-        default:
-        {
-          message="unknown exception";
-          break;
-        }
-      }
-      (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
-        (char *) message,"`%s'",image->filename);
-    }
 #if defined(MAGICKCORE_WEBPMUX_DELEGATE)
   {
-    const StringInfo
-      *profile;
-
     WebPData
-      chunk,
-      image_chunk;
+      webp_data;
 
-    WebPMux
-      *mux;
-
-    WebPMuxError
-      mux_error;
-
-    /*
-      Set image profiles (if any).
-    */
-    image_chunk.bytes=writer_info.mem;
-    image_chunk.size=writer_info.size;
-    mux_error=WEBP_MUX_OK;
-    (void) memset(&chunk,0,sizeof(chunk));
-    mux=WebPMuxNew();
-    profile=GetImageProfile(image,"ICC");
-    if ((profile != (StringInfo *) NULL) && (mux_error == WEBP_MUX_OK))
+    memset(&webp_data,0,sizeof(webp_data));
+    if ((image_info->adjoin != MagickFalse) &&
+        (GetPreviousImageInList(image) == (Image *) NULL) &&
+        (GetNextImageInList(image) != (Image *) NULL))
+      status=WriteAnimatedWEBPImage(image_info,image,&configure,&webp_data,
+        exception);
+    else
       {
-        chunk.bytes=GetStringInfoDatum(profile);
-        chunk.size=GetStringInfoLength(profile);
-        mux_error=WebPMuxSetChunk(mux,"ICCP",&chunk,0);
+        WebPMemoryWriterInit(&writer);
+        status=WriteSingleWEBPImage(image_info,image,&configure,&writer,
+          exception);
+        if (status == MagickFalse)
+          WebPMemoryWriterClear(&writer);
+        else
+          {
+            webp_data.bytes=writer.mem;
+            webp_data.size=writer.size;
+          }
       }
-    profile=GetImageProfile(image,"EXIF");
-    if ((profile != (StringInfo *) NULL) && (mux_error == WEBP_MUX_OK))
-      {
-        chunk.bytes=GetStringInfoDatum(profile);
-        chunk.size=GetStringInfoLength(profile);
-        mux_error=WebPMuxSetChunk(mux,"EXIF",&chunk,0);
-      }
-    profile=GetImageProfile(image,"XMP");
-    if ((profile != (StringInfo *) NULL) && (mux_error == WEBP_MUX_OK))
-      {
-        chunk.bytes=GetStringInfoDatum(profile);
-        chunk.size=GetStringInfoLength(profile);
-        mux_error=WebPMuxSetChunk(mux,"XMP",&chunk,0);
-      }
-    if (mux_error != WEBP_MUX_OK)
-      (void) ThrowMagickException(exception,GetMagickModule(),
-        ResourceLimitError,"UnableToEncodeImageFile","`%s'",image->filename);
-    if (chunk.size != 0)
-      {
-        WebPData
-          picture_profiles;
-
-        /*
-          Replace original container with image profile (if any).
-        */
-        picture_profiles.bytes=writer_info.mem;
-        picture_profiles.size=writer_info.size;
-        WebPMuxSetImage(mux,&image_chunk,1);
-        mux_error=WebPMuxAssemble(mux,&picture_profiles);
-        WebPMemoryWriterClear(&writer_info);
-        writer_info.size=picture_profiles.size;
-        writer_info.mem=(unsigned char *) picture_profiles.bytes;
-      }
-    WebPMuxDelete(mux);
+    if (status != MagickFalse)
+      status=WriteWEBPImageProfile(image,&webp_data,exception);
+    if (status != MagickFalse)
+      (void) WriteBlob(image,webp_data.size,webp_data.bytes);
+    WebPDataClear(&webp_data);
   }
-  (void) WriteBlob(image,writer_info.size,writer_info.mem);
-#endif
-  picture.argb=(uint32_t *) NULL;
-  WebPPictureFree(&picture);
-#if defined(MAGICKCORE_WEBPMUX_DELEGATE)
-  WebPMemoryWriterClear(&writer_info);
+#else
+  WebPMemoryWriterInit(&writer);
+  status=WriteSingleWEBPImage(image_info,image,&configure,&writer,
+    exception);
+  if (status != MagickFalse)
+    (void) WriteBlob(image,writer.size,writer.mem);
+  WebPMemoryWriterClear(&writer);
 #endif
   (void) CloseBlob(image);
-  RelinquishVirtualMemory(memory.pixel_info);
-  return(webp_status == 0 ? MagickFalse : MagickTrue);
+  return(status);
 }
 #endif
diff --git a/coders/webp.h b/coders/webp.h
index 66ef821..22fd1b2 100644
--- a/coders/webp.h
+++ b/coders/webp.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/wmf.c b/coders/wmf.c
index 07b44b2..a756051 100644
--- a/coders/wmf.c
+++ b/coders/wmf.c
@@ -17,7 +17,7 @@
 %                               December 2000                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/wmf.h b/coders/wmf.h
index 051d14a..fe38f09 100644
--- a/coders/wmf.h
+++ b/coders/wmf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/wpg.c b/coders/wpg.c
index 8608021..8d3835c 100644
--- a/coders/wpg.c
+++ b/coders/wpg.c
@@ -16,7 +16,7 @@
 %                                 June 2000                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -273,7 +273,7 @@
   Quantum
     index;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
@@ -561,7 +561,7 @@
     RunCount,
     XorMe = 0;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/wpg.h b/coders/wpg.h
index 100530c..f2bcf8e 100644
--- a/coders/wpg.h
+++ b/coders/wpg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/x.c b/coders/x.c
index f13297b..e84d8db 100644
--- a/coders/x.c
+++ b/coders/x.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/x.h b/coders/x.h
index 308cd54..5d8c911 100644
--- a/coders/x.h
+++ b/coders/x.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xbm.c b/coders/xbm.c
index cbad3f0..b036d5e 100644
--- a/coders/xbm.c
+++ b/coders/xbm.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -187,14 +187,14 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   short int
@@ -510,10 +510,10 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
diff --git a/coders/xbm.h b/coders/xbm.h
index 2a11c9b..cbfaf5b 100644
--- a/coders/xbm.h
+++ b/coders/xbm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xc.c b/coders/xc.c
index b81993e..0aa2047 100644
--- a/coders/xc.c
+++ b/coders/xc.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -100,10 +100,10 @@
   PixelInfo
     pixel;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   ssize_t
diff --git a/coders/xc.h b/coders/xc.h
index ef44b49..7c1a8b8 100644
--- a/coders/xc.h
+++ b/coders/xc.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xcf.c b/coders/xcf.c
index df42d5f..0c6d418 100644
--- a/coders/xcf.c
+++ b/coders/xcf.c
@@ -17,7 +17,7 @@
 %                               November 2001                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -381,7 +381,7 @@
   MagickOffsetType
     offset;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -423,10 +423,10 @@
   ssize_t
     y;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -513,7 +513,7 @@
     alpha,
     data;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -695,7 +695,7 @@
     offset,
     offset2;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -1029,7 +1029,7 @@
   status=SetImageExtent(outLayer->image,outLayer->image->columns,
     outLayer->image->rows,exception);
   if (status != MagickFalse)
-    status=ResetImagePixels(image,exception);
+    status=ResetImagePixels(outLayer->image,exception);
   if (status == MagickFalse)
     {
       outLayer->image=DestroyImageList(outLayer->image);
@@ -1146,7 +1146,7 @@
   MagickOffsetType
     offset;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
diff --git a/coders/xcf.h b/coders/xcf.h
index dd66cd8..ecfc8a4 100644
--- a/coders/xcf.h
+++ b/coders/xcf.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xpm.c b/coders/xpm.c
index 9aaa0dd..454d6aa 100644
--- a/coders/xpm.c
+++ b/coders/xpm.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -159,7 +159,7 @@
 
 static ssize_t CopyXPMColor(char *destination,const char *source,size_t length)
 {
-  register const char
+  const char
     *p;
 
   p=source;
@@ -190,14 +190,14 @@
 {
 #define NumberTargets  6
 
-  register char
+  char
     *p,
     *r;
 
-  register const char
+  const char
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
   static const char
@@ -263,15 +263,15 @@
     active,
     status;
 
-  register char
+  char
     *next,
     *p,
     *q;
 
-  register Quantum
+  Quantum
     *r;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
@@ -685,14 +685,14 @@
   RectangleInfo
     geometry;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
-  register Quantum
+  Quantum
     *q;
 
   size_t
@@ -944,10 +944,10 @@
   PixelInfo
     pixel;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     i,
     x;
 
diff --git a/coders/xpm.h b/coders/xpm.h
index 3425066..2ed7a59 100644
--- a/coders/xpm.h
+++ b/coders/xpm.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xps.c b/coders/xps.c
index 86afb66..9471cd4 100644
--- a/coders/xps.c
+++ b/coders/xps.c
@@ -17,7 +17,7 @@
 %                                January 2008                                 %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -170,7 +170,7 @@
   RectangleInfo
     page;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned long
@@ -268,6 +268,8 @@
   options=AcquireString("");
   (void) FormatLocaleString(density,MagickPathExtent,"%gx%g",resolution.x,
     resolution.y);
+  if (image_info->ping != MagickFalse)
+    (void) FormatLocaleString(density,MagickPathExtent,"2.0x2.0");
   (void) FormatLocaleString(options,MagickPathExtent,"-g%.20gx%.20g ",(double)
     page.width,(double) page.height);
   read_info=CloneImageInfo(image_info);
@@ -385,6 +387,13 @@
     (void) CopyMagickString(postscript_image->magick,image->magick,
       MagickPathExtent);
     postscript_image->page=page;
+    if (image_info->ping != MagickFalse)
+      {
+        postscript_image->magick_columns*=image->resolution.x/2.0;
+        postscript_image->magick_rows*=image->resolution.y/2.0;
+        postscript_image->columns*=image->resolution.x/2.0;
+        postscript_image->rows*=image->resolution.y/2.0;
+      }
     (void) CloneImageProfiles(postscript_image,image);
     (void) CloneImageProperties(postscript_image,image);
     next=SyncNextImageInList(postscript_image);
diff --git a/coders/xps.h b/coders/xps.h
index 0241455..79c5595 100644
--- a/coders/xps.h
+++ b/coders/xps.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xtrn.c b/coders/xtrn.c
index d909b92..23bf7c9 100644
--- a/coders/xtrn.c
+++ b/coders/xtrn.c
@@ -17,7 +17,7 @@
 %                                 May 2001                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/coders/xtrn.h b/coders/xtrn.h
index 09557dc..90fc72d 100644
--- a/coders/xtrn.h
+++ b/coders/xtrn.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/xwd.c b/coders/xwd.c
index fbb297e..624baf3 100644
--- a/coders/xwd.c
+++ b/coders/xwd.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -171,16 +171,16 @@
   Quantum
     index;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register ssize_t
+  ssize_t
     i;
 
-  register size_t
+  size_t
     pixel;
 
   size_t
@@ -497,7 +497,7 @@
       case DirectClass:
       default:
       {
-        register size_t
+        size_t
           color;
 
         size_t
@@ -759,13 +759,13 @@
   MagickBooleanType
     status;
 
-  register const Quantum
+  const Quantum
     *p;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register unsigned char
+  unsigned char
     *q;
 
   size_t
@@ -861,7 +861,7 @@
   (void) WriteBlob(image,1,(const unsigned char *) "\0");
   if (image->storage_class == PseudoClass)
     {
-      register ssize_t
+      ssize_t
         i;
 
       XColor
diff --git a/coders/xwd.h b/coders/xwd.h
index c3b7139..f6b3b9f 100644
--- a/coders/xwd.h
+++ b/coders/xwd.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/yaml.c b/coders/yaml.c
new file mode 100644
index 0000000..bf6ee19
--- /dev/null
+++ b/coders/yaml.c
@@ -0,0 +1,1731 @@
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%                        Y   Y   AAA   M   M  L                               %
+%                         Y Y   A   A  MM MM  L                               %
+%                          Y    AAAAA  M M M  L                               %
+%                          Y    A   A  M   M  L                               %
+%                          Y    A   A  M   M  LLLLL                           %
+%                                                                             %
+%                                                                             %
+%                  Write Info About the Image in YAML Format.                 %
+%                                                                             %
+%                              Software Design                                %
+%                                   Cristy                                    %
+%                                January 2014                                 %
+%                                                                             %
+%                                                                             %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
+%  dedicated to making software imaging solutions freely available.           %
+%                                                                             %
+%  You may not use this file except in compliance with the License.  You may  %
+%  obtain a copy of the License at                                            %
+%                                                                             %
+%    https://imagemagick.org/script/license.php                               %
+%                                                                             %
+%  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.                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+*/
+
+/*
+  Include declarations.
+*/
+#include "MagickCore/studio.h"
+#include "MagickCore/artifact.h"
+#include "MagickCore/attribute.h"
+#include "MagickCore/blob.h"
+#include "MagickCore/blob-private.h"
+#include "MagickCore/cache.h"
+#include "MagickCore/colorspace.h"
+#include "MagickCore/colorspace-private.h"
+#include "MagickCore/constitute.h"
+#include "MagickCore/exception.h"
+#include "MagickCore/exception-private.h"
+#include "MagickCore/feature.h"
+#include "MagickCore/image.h"
+#include "MagickCore/image-private.h"
+#include "MagickCore/list.h"
+#include "MagickCore/magick.h"
+#include "MagickCore/memory_.h"
+#include "MagickCore/monitor.h"
+#include "MagickCore/monitor-private.h"
+#include "MagickCore/option.h"
+#include "MagickCore/pixel.h"
+#include "MagickCore/pixel-accessor.h"
+#include "MagickCore/pixel-private.h"
+#include "MagickCore/prepress.h"
+#include "MagickCore/property.h"
+#include "MagickCore/quantum-private.h"
+#include "MagickCore/registry.h"
+#include "MagickCore/signature.h"
+#include "MagickCore/static.h"
+#include "MagickCore/statistic.h"
+#include "MagickCore/string_.h"
+#include "MagickCore/string-private.h"
+#include "MagickCore/utility.h"
+#include "MagickCore/version.h"
+#include "MagickCore/module.h"
+
+/*
+  Typedef declarations.
+*/
+typedef struct _IPTCInfo
+{
+  long
+    dataset,
+    record;
+
+  size_t
+    values_length;
+
+  char
+    tag[32],
+    ***values;
+} IPTCInfo;
+
+/*
+  Forward declarations.
+*/
+static MagickBooleanType
+  WriteYAMLImage(const ImageInfo *,Image *,ExceptionInfo *);
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   R e g i s t e r Y A M L I m a g e                                         %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  RegisterYAMLImage() adds attributes for the YAML image format to
+%  the list of supported formats.  The attributes include the image format
+%  tag, a method to read and/or write the format, whether the format
+%  supports the saving of more than one frame to the same file or blob,
+%  whether the format supports native in-memory I/O, and a brief
+%  description of the format.
+%
+%  The format of the RegisterYAMLImage method is:
+%
+%      size_t RegisterYAMLImage(void)
+%
+*/
+ModuleExport size_t RegisterYAMLImage(void)
+{
+  MagickInfo
+    *entry;
+
+  entry=AcquireMagickInfo("YAML","YAML","The image format and characteristics");
+  entry->encoder=(EncodeImageHandler *) WriteYAMLImage;
+  entry->mime_type=ConstantString("application/json");
+  entry->flags|=CoderEndianSupportFlag;
+  entry->flags^=CoderBlobSupportFlag;
+  (void) RegisterMagickInfo(entry);
+  return(MagickImageCoderSignature);
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   U n r e g i s t e r Y A M L I m a g e                                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  UnregisterYAMLImage() removes format registrations made by the
+%  YAML module from the list of supported formats.
+%
+%  The format of the UnregisterYAMLImage method is:
+%
+%      UnregisterYAMLImage(void)
+%
+*/
+ModuleExport void UnregisterYAMLImage(void)
+{
+  (void) UnregisterMagickInfo("YAML");
+}
+
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%   W r i t e Y A M L I m a g e                                               %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  WriteYAMLImage writes the image attributes in the YAML format.
+%
+%  The format of the WriteYAMLImage method is:
+%
+%      MagickBooleanType WriteYAMLImage(const ImageInfo *image_info,
+%        Image *image,ExceptionInfo *exception)
+%
+%  A description of each parameter follows.
+%
+%    o image_info: the image info.
+%
+%    o image:  The image.
+%
+%    o exception: return any errors or warnings in this structure.
+%
+*/
+
+static void YAMLFormatLocaleFile(FILE *file,const char *format,
+  const char *value)
+{
+  char
+    *escaped_json;
+
+  char
+    *q;
+
+  const char
+    *p;
+
+  size_t
+    length;
+
+  assert(format != (const char *) NULL);
+  if ((value == (char *) NULL) || (*value == '\0'))
+    {
+      (void) FormatLocaleFile(file,format,"null");
+      return;
+    }
+  length=strlen(value)+2;
+  /*
+    Find all the chars that need escaping and increase the dest length counter.
+  */
+  for (p=value; *p != '\0'; p++)
+  {
+    switch (*p)
+    {
+      case '"':
+      case '\b':
+      case '\f':
+      case '\n':
+      case '\r':
+      case '\t':
+      case '\\':
+      {
+        if (~length < 1)
+          return;
+        length++;
+        break;
+      }
+      default:
+      {
+        if (((int) *p >= 0x00) && ((int) *p <= 0x1f))
+          length+=6;
+        break;
+      }
+    }
+  }
+  escaped_json=(char *) NULL;
+  if (~length >= (MagickPathExtent-1))
+    escaped_json=(char *) AcquireQuantumMemory(length+MagickPathExtent,
+      sizeof(*escaped_json));
+  if (escaped_json == (char *) NULL)
+    {
+      (void) FormatLocaleFile(file,format,"null");
+      return;
+    }
+  q=escaped_json;
+  if (strchr(value,':') != (char *) NULL)
+    *q++='"';
+  for (p=value; *p != '\0'; p++)
+  {
+    switch (*p)
+    {
+      case '"':
+      {
+        *q++='\\';
+        *q++=(*p);
+        break;
+      }
+      case '\b':
+      {
+        *q++='\\';
+        *q++='b';
+        break;
+      }
+      case '\f':
+      {
+        *q++='\\';
+        *q++='f';
+        break;
+      }
+      case '\n':
+      {
+        *q++='\\';
+        *q++='n';
+        break;
+      }
+      case '\r':
+      {
+        *q++='\\';
+        *q++='r';
+        break;
+      }
+      case '\t':
+      {
+        *q++='\\';
+        *q++='t';
+        break;
+      }
+      case '\\':
+      {
+        *q++='\\';
+        *q++='\\';
+        break;
+      }
+      default:
+      {
+        if (((int) *p >= 0x00) && ((int) *p <= 0x1f))
+          {
+            (void) FormatLocaleString(q,7,"\\u%04X",(int) *p);
+            q+=6;
+            break;
+          }
+        *q++=(*p);
+        break;
+      }
+    }
+  }
+  if (strchr(value,':') != (char *) NULL)
+    *q++='"';
+  *q='\0';
+  (void) FormatLocaleFile(file,format,escaped_json);
+  (void) DestroyString(escaped_json);
+}
+
+static ChannelStatistics *GetLocationStatistics(const Image *image,
+  const StatisticType type,ExceptionInfo *exception)
+{
+  ChannelStatistics
+    *channel_statistics;
+
+  ssize_t
+    i;
+
+  ssize_t
+    y;
+
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  channel_statistics=(ChannelStatistics *) AcquireQuantumMemory(
+    MaxPixelChannels+1,sizeof(*channel_statistics));
+  if (channel_statistics == (ChannelStatistics *) NULL)
+    ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
+  (void) memset(channel_statistics,0,(MaxPixelChannels+1)*
+    sizeof(*channel_statistics));
+  for (i=0; i <= (ssize_t) MaxPixelChannels; i++)
+  {
+    switch (type)
+    {
+      case MaximumStatistic:
+      default:
+      {
+        channel_statistics[i].maxima=(-MagickMaximumValue);
+        break;
+      }
+      case MinimumStatistic:
+      {
+        channel_statistics[i].minima=MagickMaximumValue;
+        break;
+      }
+    }
+  }
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    const Quantum
+      *magick_restrict p;
+
+    ssize_t
+      x;
+
+    p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+    if (p == (const Quantum *) NULL)
+      break;
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      ssize_t
+        i;
+
+      if (GetPixelReadMask(image,p) <= (QuantumRange/2))
+        {
+          p+=GetPixelChannels(image);
+          continue;
+        }
+      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+      {
+        PixelChannel channel = GetPixelChannelChannel(image,i);
+        PixelTrait traits = GetPixelChannelTraits(image,channel);
+        if (traits == UndefinedPixelTrait)
+          continue;
+        switch (type)
+        {
+          case MaximumStatistic:
+          default:
+          {
+            if ((double) p[i] > channel_statistics[channel].maxima)
+              channel_statistics[channel].maxima=(double) p[i];
+            break;
+          }
+          case MinimumStatistic:
+          {
+            if ((double) p[i] < channel_statistics[channel].minima)
+              channel_statistics[channel].minima=(double) p[i];
+            break;
+          }
+        }
+      }
+      p+=GetPixelChannels(image);
+    }
+  }
+  return(channel_statistics);
+}
+
+static ssize_t PrintChannelFeatures(FILE *file,const PixelChannel channel,
+  const char *name,const MagickBooleanType separator,
+  const ChannelFeatures *channel_features)
+{
+#define PrintFeature(feature) \
+  GetMagickPrecision(),(feature)[0], \
+  GetMagickPrecision(),(feature)[1], \
+  GetMagickPrecision(),(feature)[2], \
+  GetMagickPrecision(),(feature)[3], \
+  GetMagickPrecision(),((feature)[0]+(feature)[1]+(feature)[2]+(feature)[3])/4.0 \
+
+#define FeaturesFormat "      %s: \n" \
+  "        angularSecondMoment: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        contrast: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        correlation: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        sumOfSquaresVariance: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        inverseDifferenceMoment: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        sumAverage: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        sumVariance: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        sumEntropy: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        entropy: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        differenceVariance: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        differenceEntropy: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        informationMeasureOfCorrelation1: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        informationMeasureOfCorrelation2: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n" \
+  "        maximumCorrelationCoefficient: \n" \
+  "          horizontal: %.*g\n" \
+  "          vertical: %.*g\n" \
+  "          leftDiagonal: %.*g\n" \
+  "          rightDiagonal: %.*g\n" \
+  "          average: %.*g\n" \
+  "        \n"
+
+  ssize_t
+    n;
+
+  n=FormatLocaleFile(file,FeaturesFormat,name,
+    PrintFeature(channel_features[channel].angular_second_moment),
+    PrintFeature(channel_features[channel].contrast),
+    PrintFeature(channel_features[channel].correlation),
+    PrintFeature(channel_features[channel].variance_sum_of_squares),
+    PrintFeature(channel_features[channel].inverse_difference_moment),
+    PrintFeature(channel_features[channel].sum_average),
+    PrintFeature(channel_features[channel].sum_variance),
+    PrintFeature(channel_features[channel].sum_entropy),
+    PrintFeature(channel_features[channel].entropy),
+    PrintFeature(channel_features[channel].difference_variance),
+    PrintFeature(channel_features[channel].difference_entropy),
+    PrintFeature(channel_features[channel].measure_of_correlation_1),
+    PrintFeature(channel_features[channel].measure_of_correlation_2),
+    PrintFeature(channel_features[channel].maximum_correlation_coefficient));
+  (void) FormatLocaleFile(file,"      ");
+  if (separator != MagickFalse)
+    (void) FormatLocaleFile(file," ");
+  (void) FormatLocaleFile(file,"\n");
+  return(n);
+}
+
+static ssize_t PrintChannelLocations(FILE *file,const Image *image,
+  const PixelChannel channel,const char *name,const StatisticType type,
+  const size_t max_locations,const MagickBooleanType separator,
+  const ChannelStatistics *channel_statistics)
+{
+  double
+    target;
+
+  ExceptionInfo
+    *exception;
+
+  ssize_t
+    n,
+    y;
+
+  switch (type)
+  {
+    case MaximumStatistic:
+    default:
+    {
+      target=channel_statistics[channel].maxima;
+      break;
+    }
+    case MinimumStatistic:
+    {
+      target=channel_statistics[channel].minima;
+      break;
+    }
+  }
+  (void) FormatLocaleFile(file,"      %s: \n        intensity: "
+    "%.*g\n",name,GetMagickPrecision(),QuantumScale*target);
+  exception=AcquireExceptionInfo();
+  n=0;
+  for (y=0; y < (ssize_t) image->rows; y++)
+  {
+    const Quantum
+      *p;
+
+    ssize_t
+      offset,
+      x;
+
+    p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+    if (p == (const Quantum *) NULL)
+      break;
+    for (x=0; x < (ssize_t) image->columns; x++)
+    {
+      MagickBooleanType
+        match;
+
+      PixelTrait traits = GetPixelChannelTraits(image,channel);
+      if (traits == UndefinedPixelTrait)
+        continue;
+      offset=GetPixelChannelOffset(image,channel);
+      match=fabs((double) (p[offset]-target)) < 0.5 ? MagickTrue : MagickFalse;
+      if (match != MagickFalse)
+        {
+          if ((max_locations != 0) && (n >= (ssize_t) max_locations))
+            break;
+          if (n != 0)
+            (void) FormatLocaleFile(file,"\n");
+          (void) FormatLocaleFile(file,"        location%.20g: \n"
+            "          x: %.20g\n          y: %.20g\n"
+            "        ",(double) n,(double) x,(double) y);
+          n++;
+        }
+      p+=GetPixelChannels(image);
+    }
+    if (x < (ssize_t) image->columns)
+      break;
+  }
+  (void) FormatLocaleFile(file,"\n      ");
+  if (separator != MagickFalse)
+    (void) FormatLocaleFile(file," ");
+  (void) FormatLocaleFile(file,"\n");
+  return(n);
+}
+
+static ssize_t PrintChannelMoments(FILE *file,const PixelChannel channel,
+  const char *name,const MagickBooleanType separator,
+  const ChannelMoments *channel_moments)
+{
+  ssize_t
+    i;
+
+  ssize_t
+    n;
+
+  n=FormatLocaleFile(file,"      %s: \n",name);
+  n+=FormatLocaleFile(file,"        centroid: \n "
+    "          x: %.*g\n"
+    "           y: %.*g\n        \n",
+    GetMagickPrecision(),channel_moments[channel].centroid.x,
+    GetMagickPrecision(),channel_moments[channel].centroid.y);
+  n+=FormatLocaleFile(file,"        ellipseSemiMajorMinorAxis: \n"
+    "          x: %.*g\n"
+    "          y: %.*g\n        \n",
+    GetMagickPrecision(),channel_moments[channel].ellipse_axis.x,
+    GetMagickPrecision(),channel_moments[channel].ellipse_axis.y);
+  n+=FormatLocaleFile(file,"        ellipseAngle: %.*g\n",
+    GetMagickPrecision(),channel_moments[channel].ellipse_angle);
+  n+=FormatLocaleFile(file,"        ellipseEccentricity: %.*g\n",
+    GetMagickPrecision(),channel_moments[channel].ellipse_eccentricity);
+  n+=FormatLocaleFile(file,"        ellipseIntensity: %.*g\n",
+    GetMagickPrecision(),channel_moments[channel].ellipse_intensity);
+  for (i=0; i < 7; i++)
+    n+=FormatLocaleFile(file,"        I%.20g: %.*g\n",i+1.0,
+      GetMagickPrecision(),channel_moments[channel].invariant[i]);
+  n+=FormatLocaleFile(file,"        I%.20g: %.*g\n",i+1.0,
+    GetMagickPrecision(),channel_moments[channel].invariant[i]);
+  (void) FormatLocaleFile(file,"      ");
+  if (separator != MagickFalse)
+    (void) FormatLocaleFile(file," ");
+  (void) FormatLocaleFile(file,"\n");
+  return(n);
+}
+
+static ssize_t PrintChannelPerceptualHash(Image *image,FILE *file,
+  const ChannelPerceptualHash *channel_phash)
+{
+  ssize_t
+    i;
+
+  ssize_t
+    n = 0;
+
+  (void) FormatLocaleFile(file,"      colorspaces:  ");
+  for (i=0; i < (ssize_t) channel_phash[0].number_colorspaces; i++)
+  {
+    (void) FormatLocaleFile(file,"- %s",CommandOptionToMnemonic(
+      MagickColorspaceOptions,(ssize_t) channel_phash[0].colorspace[i]));
+  }
+  (void) FormatLocaleFile(file,"\n");
+  for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+  {
+    ssize_t
+      j;
+
+    PixelChannel channel = GetPixelChannelChannel(image,i);
+    PixelTrait traits = GetPixelChannelTraits(image,channel);
+    if (traits == UndefinedPixelTrait)
+      continue;
+    n=FormatLocaleFile(file,"      Channel%.20g: \n",(double) channel);
+    for (j=0; j < MaximumNumberOfPerceptualHashes; j++)
+    {
+      ssize_t
+        k;
+
+      n+=FormatLocaleFile(file,"        PH%.20g: ",(double) j+1);
+      for (k=0; k < (ssize_t) channel_phash[0].number_colorspaces; k++)
+      {
+        n+=FormatLocaleFile(file,"- %.*g",GetMagickPrecision(),
+          channel_phash[channel].phash[k][j]);
+      }
+      n+=FormatLocaleFile(file," ");
+      if (j < (MaximumNumberOfPerceptualHashes-1))
+        n+=FormatLocaleFile(file,"\n");
+    }
+    if (i < (ssize_t) (GetPixelChannels(image)-1))
+      n+=FormatLocaleFile(file,"\n      \n");
+  }
+  n+=FormatLocaleFile(file,"\n      \n");
+  return(n);
+}
+
+static ssize_t PrintChannelStatistics(FILE *file,const PixelChannel channel,
+  const char *name,const double scale,const MagickBooleanType separator,
+  const ChannelStatistics *channel_statistics)
+{
+#define StatisticsFormat "      %s: \n        min: %.*g\n"  \
+  "        max: %.*g\n        mean: %.*g\n        median: %.*g\n        "  \
+  "standardDeviation: %.*g\n        kurtosis: %.*g\n        "\
+  "skewness: %.*g\n        entropy: %.*g\n      "
+
+  ssize_t
+    n;
+
+  n=FormatLocaleFile(file,StatisticsFormat,name,GetMagickPrecision(),
+    (double) ClampToQuantum(scale*channel_statistics[channel].minima),
+    GetMagickPrecision(),(double) ClampToQuantum(scale*
+    channel_statistics[channel].maxima),GetMagickPrecision(),
+    scale*channel_statistics[channel].mean,GetMagickPrecision(),
+    scale*channel_statistics[channel].median,GetMagickPrecision(),scale*
+    IsNaN(channel_statistics[channel].standard_deviation) != 0 ? MagickEpsilon :
+    channel_statistics[channel].standard_deviation,GetMagickPrecision(),
+    channel_statistics[channel].kurtosis,GetMagickPrecision(),
+    channel_statistics[channel].skewness,GetMagickPrecision(),
+    channel_statistics[channel].entropy);
+  if (separator != MagickFalse)
+    (void) FormatLocaleFile(file," ");
+  (void) FormatLocaleFile(file,"\n");
+  return(n);
+}
+
+static void EncodeIptcProfile(FILE *file,const StringInfo *profile)
+{
+  char
+    *attribute,
+    **attribute_list;
+
+  const char
+    *tag;
+
+  IPTCInfo
+    *value,
+    **values;
+
+  long
+    dataset,
+    record,
+    sentinel;
+
+  ssize_t
+    i,
+    j,
+    k;
+
+  size_t
+    count,
+    length,
+    profile_length;
+
+  values=(IPTCInfo **) NULL;
+  count=0;
+  profile_length=GetStringInfoLength(profile);
+  for (i=0; i < (ssize_t) profile_length; i+=(ssize_t) length)
+  {
+    length=1;
+    sentinel=GetStringInfoDatum(profile)[i++];
+    if (sentinel != 0x1c)
+      continue;
+    dataset=GetStringInfoDatum(profile)[i++];
+    record=GetStringInfoDatum(profile)[i++];
+    value=(IPTCInfo *) NULL;
+    for (j=0; j < (ssize_t) count; j++)
+    {
+      if ((values[j]->record == record) && (values[j]->dataset == dataset))
+        value=values[j];
+    }
+    if (value == (IPTCInfo *) NULL)
+      {
+        values=(IPTCInfo **) ResizeQuantumMemory(values,count+1,
+          sizeof(*values));
+        if (values == (IPTCInfo **) NULL)
+          break;
+        value=(IPTCInfo *) AcquireMagickMemory(sizeof(*value));
+        if (value == (IPTCInfo *) NULL)
+          break;
+        /* Check the tag length in IPTCInfo when a new tag is added */
+        switch (record)
+        {
+          case 5: tag="Image Name"; break;
+          case 7: tag="Edit Status"; break;
+          case 10: tag="Priority"; break;
+          case 15: tag="Category"; break;
+          case 20: tag="Supplemental Category"; break;
+          case 22: tag="Fixture Identifier"; break;
+          case 25: tag="Keyword"; break;
+          case 30: tag="Release Date"; break;
+          case 35: tag="Release Time"; break;
+          case 40: tag="Special Instructions"; break;
+          case 45: tag="Reference Service"; break;
+          case 47: tag="Reference Date"; break;
+          case 50: tag="Reference Number"; break;
+          case 55: tag="Created Date"; break;
+          case 60: tag="Created Time"; break;
+          case 65: tag="Originating Program"; break;
+          case 70: tag="Program Version"; break;
+          case 75: tag="Object Cycle"; break;
+          case 80: tag="Byline"; break;
+          case 85: tag="Byline Title"; break;
+          case 90: tag="City"; break;
+          case 92: tag="Sub-Location"; break;
+          case 95: tag="Province State"; break;
+          case 100: tag="Country Code"; break;
+          case 101: tag="Country"; break;
+          case 103: tag="Original Transmission Reference"; break;
+          case 105: tag="Headline"; break;
+          case 110: tag="Credit"; break;
+          case 115: tag="Src"; break;
+          case 116: tag="Copyright String"; break;
+          case 120: tag="Caption"; break;
+          case 121: tag="Local Caption"; break;
+          case 122: tag="Caption Writer"; break;
+          case 200: tag="Custom Field 1"; break;
+          case 201: tag="Custom Field 2"; break;
+          case 202: tag="Custom Field 3"; break;
+          case 203: tag="Custom Field 4"; break;
+          case 204: tag="Custom Field 5"; break;
+          case 205: tag="Custom Field 6"; break;
+          case 206: tag="Custom Field 7"; break;
+          case 207: tag="Custom Field 8"; break;
+          case 208: tag="Custom Field 9"; break;
+          case 209: tag="Custom Field 10"; break;
+          case 210: tag="Custom Field 11"; break;
+          case 211: tag="Custom Field 12"; break;
+          case 212: tag="Custom Field 13"; break;
+          case 213: tag="Custom Field 14"; break;
+          case 214: tag="Custom Field 15"; break;
+          case 215: tag="Custom Field 16"; break;
+          case 216: tag="Custom Field 17"; break;
+          case 217: tag="Custom Field 18"; break;
+          case 218: tag="Custom Field 19"; break;
+          case 219: tag="Custom Field 20"; break;
+          default: tag="Unknown"; break;
+        }
+        (void) CopyMagickString(value->tag,tag,strlen(tag)+1);
+        value->record=record;
+        value->dataset=dataset;
+        value->values=(char ***) NULL;
+        value->values_length=0;
+        values[count++]=value;
+      }
+    length=(size_t) (GetStringInfoDatum(profile)[i++] << 8);
+    length|=GetStringInfoDatum(profile)[i++];
+    attribute=(char *) NULL;
+    if (~length >= (MagickPathExtent-1))
+      attribute=(char *) AcquireQuantumMemory(length+MagickPathExtent,
+        sizeof(*attribute));
+    if (attribute != (char *) NULL)
+      {
+        (void) CopyMagickString(attribute,(char *)
+          GetStringInfoDatum(profile)+i,length+1);
+        attribute_list=StringToList(attribute);
+        if (attribute_list != (char **) NULL)
+          {
+            value->values=(char ***) ResizeQuantumMemory(value->values,
+              value->values_length+1,
+              sizeof(*value->values));
+            if (value->values == (char ***) NULL)
+              break;
+            value->values[value->values_length++]=attribute_list;
+          }
+        attribute=DestroyString(attribute);
+      }
+  }
+  if (values != (IPTCInfo **) NULL)
+    {
+      for (i=0; i < (ssize_t) count; i++)
+      {
+        value=values[i];
+        (void) FormatLocaleFile(file,"        %s[%.20g,%.20g]: ",
+          value->tag,(double) value->dataset,(double) value->record);
+        if (value->values_length == 0)
+          (void) FormatLocaleFile(file,"null,");
+        else
+          {
+            (void) FormatLocaleFile(file,"[");
+            for (j=0; j < (ssize_t) value->values_length; j++)
+            {
+              for (k=0; value->values[j][k] != (char *) NULL; k++)
+              {
+                if (j > 0 || k > 0)
+                  (void) FormatLocaleFile(file," ");
+                YAMLFormatLocaleFile(file,"%s",value->values[j][k]);
+                value->values[j][k]=(char *) RelinquishMagickMemory(
+                  value->values[j][k]);
+              }
+              value->values[j]=(char **) RelinquishMagickMemory(
+                value->values[j]);
+            }
+            value->values=(char ***) RelinquishMagickMemory(value->values);
+            (void) FormatLocaleFile(file,"]\n");
+          }
+        values[i]=(IPTCInfo *) RelinquishMagickMemory(values[i]);
+      }
+      values=(IPTCInfo **) RelinquishMagickMemory(values);
+    }
+}
+
+static MagickBooleanType EncodeImageAttributes(Image *image,FILE *file,
+  ExceptionInfo *exception)
+{
+  char
+    color[MagickPathExtent],
+    format[MagickPathExtent],
+    key[MagickPathExtent];
+
+  ChannelFeatures
+    *channel_features;
+
+  ChannelMoments
+    *channel_moments;
+
+  ChannelPerceptualHash
+    *channel_phash;
+
+  ChannelStatistics
+    *channel_statistics;
+
+  const char
+    *artifact,
+    *locate,
+    *name,
+    *property,
+    *registry,
+    *value;
+
+  const MagickInfo
+    *magick_info;
+
+  double
+    elapsed_time,
+    user_time,
+    version;
+
+  ImageType
+    type;
+
+  MagickBooleanType
+    ping;
+
+  const Quantum
+    *p;
+
+  ssize_t
+    i,
+    x;
+
+  size_t
+    depth,
+    distance,
+    scale;
+
+  ssize_t
+    y;
+
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  *format='\0';
+  elapsed_time=GetElapsedTime(&image->timer);
+  user_time=GetUserTime(&image->timer);
+  GetTimerInfo(&image->timer);
+  p=GetVirtualPixels(image,0,0,1,1,exception);
+  ping=p == (const Quantum *) NULL ? MagickTrue : MagickFalse;
+  (void) ping;
+  (void) SignatureImage(image,exception);
+  (void) FormatLocaleFile(file,"---\n");
+  version=1.0;
+  artifact=GetImageArtifact(image,"yaml:version");
+  if (artifact != (const char *) NULL)
+    version=StringToDouble(artifact,(char **) NULL);
+  if (version >= 1.0)
+    (void) FormatLocaleFile(file,"  version: %.1f\n",version);
+  if (*image->magick_filename == '\0')
+    YAMLFormatLocaleFile(file,"  image: \n    name: %s\n",
+      image->filename);
+  else
+    {
+      YAMLFormatLocaleFile(file,"  image: \n    name: %s\n",
+        image->magick_filename);
+      if (LocaleCompare(image->magick_filename,image->filename) != 0)
+        {   
+          char
+            filename[MaxTextExtent];
+          
+          GetPathComponent(image->magick_filename,TailPath,filename);
+          YAMLFormatLocaleFile(file,"    baseName: %s\n",filename);
+        }
+    }
+  YAMLFormatLocaleFile(file,"    format: %s\n",image->magick);
+  magick_info=GetMagickInfo(image->magick,exception);
+  if ((magick_info != (const MagickInfo *) NULL) &&
+      (GetMagickDescription(magick_info) != (const char *) NULL))
+    YAMLFormatLocaleFile(file,"    formatDescription: %s\n",
+      image->magick);
+  if ((magick_info != (const MagickInfo *) NULL) &&
+      (GetMagickMimeType(magick_info) != (const char *) NULL))
+    YAMLFormatLocaleFile(file,"    mimeType: %s\n",GetMagickMimeType(
+      magick_info));
+  YAMLFormatLocaleFile(file,"    class: %s\n",CommandOptionToMnemonic(
+    MagickClassOptions,(ssize_t) image->storage_class));
+  (void) FormatLocaleFile(file,"    geometry: \n"
+    "      width: %g\n      height: %g\n"
+    "      x: %g\n      y: %g\n    \n",
+    (double) image->columns,(double) image->rows,(double) image->tile_offset.x,
+    (double) image->tile_offset.y);
+  if ((image->magick_columns != 0) || (image->magick_rows != 0))
+    if ((image->magick_columns != image->columns) ||
+        (image->magick_rows != image->rows))
+      (void) FormatLocaleFile(file,"    baseGeometry: \n"
+        "      width: %g\n      height: %g\n    \n",(double)
+        image->magick_columns,(double) image->magick_rows);
+  if ((image->resolution.x != 0.0) && (image->resolution.y != 0.0))
+    {
+      (void) FormatLocaleFile(file,"    resolution: \n"
+        "      x: %g\n      y: %g\n    \n",image->resolution.x,
+        image->resolution.y);
+      (void) FormatLocaleFile(file,"    printSize: \n"
+        "      x: %.*g\n      y: %.*g\n    \n",GetMagickPrecision(),
+        image->columns/image->resolution.x,GetMagickPrecision(),(double)
+        image->rows/image->resolution.y);
+    }
+  YAMLFormatLocaleFile(file,"    units: %s\n",CommandOptionToMnemonic(
+    MagickResolutionOptions,(ssize_t) image->units));
+  type=IdentifyImageType(image,exception);
+  YAMLFormatLocaleFile(file,"    type: %s\n",CommandOptionToMnemonic(
+    MagickTypeOptions,(ssize_t) type));
+  if (image->type != type)
+    YAMLFormatLocaleFile(file,"    baseType: %s\n",
+      CommandOptionToMnemonic(MagickTypeOptions,(ssize_t) image->type));
+  if (version < 1.0)
+    YAMLFormatLocaleFile(file,"    endianess: %s\n",
+      CommandOptionToMnemonic(MagickEndianOptions,(ssize_t) image->endian));
+  else
+    YAMLFormatLocaleFile(file,"    endianness: %s\n",
+      CommandOptionToMnemonic(MagickEndianOptions,(ssize_t) image->endian));
+  locate=GetImageArtifact(image,"identify:locate");
+  if (locate == (const char *) NULL)
+    locate=GetImageArtifact(image,"yaml:locate");
+  if (locate != (const char *) NULL)
+    {
+      const char
+        *limit;
+
+      size_t
+        max_locations;
+
+      StatisticType
+        type;
+
+      /*
+        Display minimum, maximum, or mean pixel locations.
+      */
+      type=(StatisticType) ParseCommandOption(MagickStatisticOptions,
+        MagickFalse,locate);
+      limit=GetImageArtifact(image,"identify:limit");
+      if (limit == (const char *) NULL)
+        limit=GetImageArtifact(image,"yaml:limit");
+      max_locations=0;
+      if (limit != (const char *) NULL)
+        max_locations=StringToUnsignedLong(limit);
+      channel_statistics=GetLocationStatistics(image,type,exception);
+      if (channel_statistics == (ChannelStatistics *) NULL)
+        return(MagickFalse);
+      (void) FormatLocaleFile(file,"    channel%s: \n",locate);
+      if (image->alpha_trait != UndefinedPixelTrait)
+        (void) PrintChannelLocations(file,image,AlphaPixelChannel,"alpha",
+          type,max_locations,MagickTrue,channel_statistics);
+      switch (image->colorspace)
+      {
+        case RGBColorspace:
+        default:
+        {
+          (void) PrintChannelLocations(file,image,RedPixelChannel,"red",
+            type,max_locations,MagickTrue,channel_statistics);
+          (void) PrintChannelLocations(file,image,GreenPixelChannel,"green",
+            type,max_locations,MagickTrue,channel_statistics);
+          (void) PrintChannelLocations(file,image,BluePixelChannel,"blue",
+            type,max_locations,MagickFalse,channel_statistics);
+          break;
+        }
+        case CMYKColorspace:
+        {
+          (void) PrintChannelLocations(file,image,CyanPixelChannel,"cyan",
+            type,max_locations,MagickTrue,channel_statistics);
+          (void) PrintChannelLocations(file,image,MagentaPixelChannel,
+            "magenta",type,max_locations,MagickTrue,channel_statistics);
+          (void) PrintChannelLocations(file,image,YellowPixelChannel,"yellow",
+            type,max_locations,MagickTrue,channel_statistics);
+          (void) PrintChannelLocations(file,image,BlackPixelChannel,"black",
+            type,max_locations,MagickFalse,channel_statistics);
+          break;
+        }
+        case LinearGRAYColorspace:
+        case GRAYColorspace:
+        {
+          (void) PrintChannelLocations(file,image,GrayPixelChannel,"gray",
+            type,max_locations,MagickFalse,channel_statistics);
+          break;
+        }
+      }
+      (void) FormatLocaleFile(file,"    \n");
+      channel_statistics=(ChannelStatistics *) RelinquishMagickMemory(
+        channel_statistics);
+    }
+  /*
+    Detail channel depth and extrema.
+  */
+  YAMLFormatLocaleFile(file,"    colorspace: %s\n",
+    CommandOptionToMnemonic(MagickColorspaceOptions,(ssize_t)
+    image->colorspace));
+  channel_statistics=(ChannelStatistics *) NULL;
+  channel_moments=(ChannelMoments *) NULL;
+  channel_phash=(ChannelPerceptualHash *) NULL;
+  channel_features=(ChannelFeatures *) NULL;
+  scale=1;
+  channel_statistics=GetImageStatistics(image,exception);
+  if (channel_statistics == (ChannelStatistics *) NULL)
+    return(MagickFalse);
+  artifact=GetImageArtifact(image,"identify:moments");
+  if (artifact == (const char *) NULL)
+    artifact=GetImageArtifact(image,"yaml:moments");
+  if (artifact != (const char *) NULL)
+    {
+      channel_moments=GetImageMoments(image,exception);
+      channel_phash=GetImagePerceptualHash(image,exception);
+    }
+  artifact=GetImageArtifact(image,"identify:features");
+  if (artifact == (const char *) NULL)
+    artifact=GetImageArtifact(image,"yaml:features");
+  if (artifact != (const char *) NULL)
+    {
+      distance=StringToUnsignedLong(artifact);
+      channel_features=GetImageFeatures(image,distance,exception);
+    }
+  depth=GetImageDepth(image,exception);
+  (void) FormatLocaleFile(file,"    depth: %g\n",(double) depth);
+  (void) FormatLocaleFile(file,"    baseDepth: %g\n",(double)
+    image->depth);
+  (void) FormatLocaleFile(file,"    channelDepth: \n");
+  if (image->alpha_trait != UndefinedPixelTrait)
+    (void) FormatLocaleFile(file,"      alpha: %.20g\n",(double)
+      channel_statistics[AlphaPixelChannel].depth);
+  switch (image->colorspace)
+  {
+    case RGBColorspace:
+    default:
+    {
+      (void) FormatLocaleFile(file,"      red: %.20g\n",(double)
+        channel_statistics[RedChannel].depth);
+      (void) FormatLocaleFile(file,"      green: %.20g\n",(double)
+        channel_statistics[GreenChannel].depth);
+      (void) FormatLocaleFile(file,"      blue: %.20g\n",(double)
+        channel_statistics[BlueChannel].depth);
+      break;
+    }
+    case CMYKColorspace:
+    {
+      (void) FormatLocaleFile(file,"      cyan: %.20g\n",(double)
+        channel_statistics[CyanChannel].depth);
+      (void) FormatLocaleFile(file,"      magenta: %.20g\n",(double)
+        channel_statistics[MagentaChannel].depth);
+      (void) FormatLocaleFile(file,"      yellow: %.20g\n",(double)
+        channel_statistics[YellowChannel].depth);
+      (void) FormatLocaleFile(file,"      black: %.20g\n",(double)
+        channel_statistics[BlackChannel].depth);
+      break;
+    }
+    case LinearGRAYColorspace:
+    case GRAYColorspace:
+    {
+      (void) FormatLocaleFile(file,"      gray: %.20g\n",(double)
+        channel_statistics[GrayChannel].depth);
+      break;
+    }
+  }
+  (void) FormatLocaleFile(file,"    \n");
+  scale=1;
+  if (image->depth <= MAGICKCORE_QUANTUM_DEPTH)
+    scale=QuantumRange/((size_t) QuantumRange >> ((size_t)
+      MAGICKCORE_QUANTUM_DEPTH-image->depth));
+  if (channel_statistics != (ChannelStatistics *) NULL)
+    {
+      (void) FormatLocaleFile(file,"    pixels: %.20g\n",
+        channel_statistics[CompositePixelChannel].area);
+      if ((image->colorspace != LinearGRAYColorspace) &&
+          (image->colorspace != GRAYColorspace))
+        {
+          (void) FormatLocaleFile(file,"    imageStatistics: \n");
+          (void) PrintChannelStatistics(file,(PixelChannel) MaxPixelChannels,
+            "overall",1.0/scale,MagickFalse,channel_statistics);
+          (void) FormatLocaleFile(file,"    \n");
+        }
+      (void) FormatLocaleFile(file,"    channelStatistics: \n");
+      if (image->alpha_trait != UndefinedPixelTrait)
+        (void) PrintChannelStatistics(file,AlphaPixelChannel,"alpha",1.0/scale,
+          MagickTrue,channel_statistics);
+      switch (image->colorspace)
+      {
+        case RGBColorspace:
+        default:
+        {
+          (void) PrintChannelStatistics(file,RedPixelChannel,"red",1.0/scale,
+            MagickTrue,channel_statistics);
+          (void) PrintChannelStatistics(file,GreenPixelChannel,"green",1.0/
+            scale,MagickTrue,channel_statistics);
+          (void) PrintChannelStatistics(file,BluePixelChannel,"blue",1.0/scale,
+            MagickFalse,channel_statistics);
+          break;
+        }
+        case CMYKColorspace:
+        {
+          (void) PrintChannelStatistics(file,CyanPixelChannel,"cyan",1.0/scale,
+            MagickTrue,channel_statistics);
+          (void) PrintChannelStatistics(file,MagentaPixelChannel,"magenta",1.0/
+            scale,MagickTrue,channel_statistics);
+          (void) PrintChannelStatistics(file,YellowPixelChannel,"yellow",1.0/
+            scale,MagickTrue,channel_statistics);
+          (void) PrintChannelStatistics(file,BlackPixelChannel,"black",1.0/
+            scale,MagickFalse,channel_statistics);
+          break;
+        }
+        case LinearGRAYColorspace:
+        case GRAYColorspace:
+        {
+          (void) PrintChannelStatistics(file,GrayPixelChannel,"gray",1.0/scale,
+            MagickFalse,channel_statistics);
+          break;
+        }
+      }
+      (void) FormatLocaleFile(file,"    \n");
+      channel_statistics=(ChannelStatistics *) RelinquishMagickMemory(
+        channel_statistics);
+    }
+  if (channel_moments != (ChannelMoments *) NULL)
+    {
+      (void) FormatLocaleFile(file,"    channelMoments: \n");
+      if (image->alpha_trait != UndefinedPixelTrait)
+        (void) PrintChannelMoments(file,AlphaPixelChannel,"alpha",MagickTrue,
+          channel_moments);
+      switch (image->colorspace)
+      {
+        case RGBColorspace:
+        default:
+        {
+          (void) PrintChannelMoments(file,RedPixelChannel,"red",MagickTrue,
+            channel_moments);
+          (void) PrintChannelMoments(file,GreenPixelChannel,"green",MagickTrue,
+            channel_moments);
+          (void) PrintChannelMoments(file,BluePixelChannel,"blue",MagickFalse,
+            channel_moments);
+          break;
+        }
+        case CMYKColorspace:
+        {
+          (void) PrintChannelMoments(file,CyanPixelChannel,"cyan",MagickTrue,
+            channel_moments);
+          (void) PrintChannelMoments(file,MagentaPixelChannel,"magenta",
+            MagickTrue,channel_moments);
+          (void) PrintChannelMoments(file,YellowPixelChannel,"yellow",
+            MagickTrue,channel_moments);
+          (void) PrintChannelMoments(file,BlackPixelChannel,"black",
+            MagickFalse,channel_moments);
+          break;
+        }
+        case LinearGRAYColorspace:
+        case GRAYColorspace:
+        {
+          (void) PrintChannelMoments(file,GrayPixelChannel,"gray",MagickFalse,
+            channel_moments);
+          break;
+        }
+      }
+      (void) FormatLocaleFile(file,"    \n");
+      channel_moments=(ChannelMoments *) RelinquishMagickMemory(
+        channel_moments);
+    }
+  if (channel_phash != (ChannelPerceptualHash *) NULL)
+    {
+      (void) FormatLocaleFile(file,"    channelPerceptualHash: \n");
+      (void) PrintChannelPerceptualHash(image,file,channel_phash);
+      (void) FormatLocaleFile(file,"    \n");
+      channel_phash=(ChannelPerceptualHash *) RelinquishMagickMemory(
+        channel_phash);
+    }
+  if (channel_features != (ChannelFeatures *) NULL)
+    {
+      (void) FormatLocaleFile(file,"    channelFeatures: \n");
+      if (image->alpha_trait != UndefinedPixelTrait)
+        (void) PrintChannelFeatures(file,AlphaPixelChannel,"alpha",MagickTrue,
+          channel_features);
+      switch (image->colorspace)
+      {
+        case RGBColorspace:
+        default:
+        {
+          (void) PrintChannelFeatures(file,RedPixelChannel,"red",MagickTrue,
+            channel_features);
+          (void) PrintChannelFeatures(file,GreenPixelChannel,"green",
+            MagickTrue,channel_features);
+          (void) PrintChannelFeatures(file,BluePixelChannel,"blue",MagickFalse,
+            channel_features);
+          break;
+        }
+        case CMYKColorspace:
+        {
+          (void) PrintChannelFeatures(file,CyanPixelChannel,"cyan",MagickTrue,
+            channel_features);
+          (void) PrintChannelFeatures(file,MagentaPixelChannel,"magenta",
+            MagickTrue,channel_features);
+          (void) PrintChannelFeatures(file,YellowPixelChannel,"yellow",
+            MagickTrue,channel_features);
+          (void) PrintChannelFeatures(file,BlackPixelChannel,"black",
+            MagickFalse,channel_features);
+          break;
+        }
+        case LinearGRAYColorspace:
+        case GRAYColorspace:
+        {
+          (void) PrintChannelFeatures(file,GrayPixelChannel,"gray",MagickFalse,
+            channel_features);
+          break;
+        }
+      }
+      (void) FormatLocaleFile(file,"    \n");
+      channel_features=(ChannelFeatures *) RelinquishMagickMemory(
+        channel_features);
+    }
+    if (image->colorspace == CMYKColorspace)
+      (void) FormatLocaleFile(file,"    totalInkDensity: %.*g%%\n",
+        GetMagickPrecision(),100.0*GetImageTotalInkDensity(image,exception)/
+        (double) QuantumRange);
+    x=0;
+    if (image->alpha_trait != UndefinedPixelTrait)
+      {
+        const Quantum
+          *p;
+
+        p=(const Quantum *) NULL;
+        for (y=0; y < (ssize_t) image->rows; y++)
+        {
+          p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+          if (p == (const Quantum *) NULL)
+            break;
+          for (x=0; x < (ssize_t) image->columns; x++)
+          {
+            if (GetPixelAlpha(image,p) == (Quantum) TransparentAlpha)
+              break;
+            p+=GetPixelChannels(image);
+          }
+          if (x < (ssize_t) image->columns)
+            break;
+        }
+        if ((x < (ssize_t) image->columns) || (y < (ssize_t) image->rows))
+          {
+            PixelInfo
+              pixel;
+
+            GetPixelInfo(image,&pixel);
+            GetPixelInfoPixel(image,p,&pixel);
+            GetColorTuple(&pixel,MagickTrue,color);
+            (void) FormatLocaleFile(file,"    alpha: %s\n",color);
+          }
+      }
+  if (image->storage_class == PseudoClass)
+    {
+      PixelInfo
+        *magick_restrict p;
+
+      (void) FormatLocaleFile(file,"    colormapEntries: %.20g\n",
+        (double) image->colors);
+      (void) FormatLocaleFile(file,"    colormap: \n      ");
+      p=image->colormap;
+      for (i=0; i < (ssize_t) image->colors; i++)
+      {
+        GetColorTuple(p,MagickTrue,color);
+        (void) FormatLocaleFile(file,"- \"%s\"\n      ",color);
+        p++;
+      }
+      (void) FormatLocaleFile(file,"\n    \n");
+    }
+  if (image->error.mean_error_per_pixel != 0.0)
+    (void) FormatLocaleFile(file,"    meanErrorPerPixel: %g\n",
+      image->error.mean_error_per_pixel);
+  if (image->error.normalized_mean_error != 0.0)
+    (void) FormatLocaleFile(file,"    normalizedMeanError: %g\n",
+      image->error.normalized_mean_error);
+  if (image->error.normalized_maximum_error != 0.0)
+    (void) FormatLocaleFile(file,"    normalizedMaximumError: %g\n",
+      image->error.normalized_maximum_error);
+  YAMLFormatLocaleFile(file,"    renderingIntent: %s\n",
+    CommandOptionToMnemonic(MagickIntentOptions,(ssize_t)
+    image->rendering_intent));
+  if (image->gamma != 0.0)
+    (void) FormatLocaleFile(file,"    gamma: %g\n",image->gamma);
+  if ((image->chromaticity.red_primary.x != 0.0) ||
+      (image->chromaticity.green_primary.x != 0.0) ||
+      (image->chromaticity.blue_primary.x != 0.0) ||
+      (image->chromaticity.white_point.x != 0.0))
+    {
+      /*
+        Display image chromaticity.
+      */
+      (void) FormatLocaleFile(file,"    chromaticity: \n");
+      (void) FormatLocaleFile(file,"      redPrimary: \n"
+        "        x: %g\n        y: %g\n      \n",
+        image->chromaticity.red_primary.x,image->chromaticity.red_primary.y);
+      (void) FormatLocaleFile(file,"      greenPrimary: \n"
+        "        x: %g\n        y: %g\n      \n",
+        image->chromaticity.green_primary.x,
+        image->chromaticity.green_primary.y);
+      (void) FormatLocaleFile(file,"      bluePrimary: \n"
+        "        x: %g\n        y: %g\n      \n",
+        image->chromaticity.blue_primary.x,image->chromaticity.blue_primary.y);
+      (void) FormatLocaleFile(file,"      whitePrimary: \n"
+        "        x: %g\n        y: %g\n      \n",
+        image->chromaticity.white_point.x,image->chromaticity.white_point.y);
+      (void) FormatLocaleFile(file,"    \n");
+    }
+  if ((image->extract_info.width*image->extract_info.height) != 0)
+    (void) FormatLocaleFile(file,"    tileGeometry: \n"
+      "      width: %.20g\n      height: %.20g\n"
+      "      x: %.20g\n      y: %.20g\n    \n",
+      (double) image->extract_info.width,(double) image->extract_info.height,
+      (double) image->extract_info.x,(double) image->extract_info.y);
+  GetColorTuple(&image->matte_color,MagickTrue,color);
+  (void) FormatLocaleFile(file,"    matteColor: %s\n",color);
+  GetColorTuple(&image->background_color,MagickTrue,color);
+  (void) FormatLocaleFile(file,"    backgroundColor: %s\n",color);
+  GetColorTuple(&image->border_color,MagickTrue,color);
+  (void) FormatLocaleFile(file,"    borderColor: %s\n",color);
+  GetColorTuple(&image->transparent_color,MagickTrue,color);
+  (void) FormatLocaleFile(file,"    transparentColor: %s\n",color);
+  YAMLFormatLocaleFile(file,"    interlace: %s\n",CommandOptionToMnemonic(
+    MagickInterlaceOptions,(ssize_t) image->interlace));
+  YAMLFormatLocaleFile(file,"    intensity: %s\n",CommandOptionToMnemonic(
+    MagickPixelIntensityOptions,(ssize_t) image->intensity));
+  YAMLFormatLocaleFile(file,"    compose: %s\n",
+    CommandOptionToMnemonic(MagickComposeOptions,(ssize_t) image->compose));
+  if ((image->page.width != 0) || (image->page.height != 0) ||
+      (image->page.x != 0) || (image->page.y != 0))
+    (void) FormatLocaleFile(file,"    pageGeometry: \n"
+      "      width: %.20g\n      height: %.20g\n"
+      "      x: %.20g\n      y: %.20g\n    \n",
+      (double) image->page.width,(double) image->page.height,
+      (double) image->page.x,(double) image->page.y);
+  if ((image->page.x != 0) || (image->page.y != 0))
+    (void) FormatLocaleFile(file,"    originGeometry: %+.20g%+.20g\n",
+      (double) image->page.x,(double) image->page.y);
+  YAMLFormatLocaleFile(file,"    dispose: %s\n",
+    CommandOptionToMnemonic(MagickDisposeOptions,(ssize_t) image->dispose));
+  if (image->delay != 0)
+    (void) FormatLocaleFile(file,"    delay: %.20gx%.20g\n",
+      (double) image->delay,(double) image->ticks_per_second);
+  if (image->iterations != 1)
+    (void) FormatLocaleFile(file,"    iterations: %.20g\n",(double)
+      image->iterations);
+  if ((image->next != (Image *) NULL) || (image->previous != (Image *) NULL))
+    (void) FormatLocaleFile(file,"    scene: %.20g\n    scenes: "
+      "%.20g\n",(double) image->scene,(double) GetImageListLength(image));
+  else
+    if (image->scene != 0)
+      (void) FormatLocaleFile(file,"    scene: %.20g\n",(double)
+        image->scene);
+  YAMLFormatLocaleFile(file,"    compression: %s\n",
+    CommandOptionToMnemonic(MagickCompressOptions,(ssize_t)
+    image->compression));
+  if (image->quality != UndefinedCompressionQuality)
+    (void) FormatLocaleFile(file,"    quality: %.20g\n",(double)
+      image->quality);
+  YAMLFormatLocaleFile(file,"    orientation: %s\n",
+    CommandOptionToMnemonic(MagickOrientationOptions,(ssize_t)
+    image->orientation));
+  if (image->montage != (char *) NULL)
+    YAMLFormatLocaleFile(file,"    montage: %s\n",image->montage);
+  if (image->directory != (char *) NULL)
+    {
+      Image
+        *tile;
+
+      ImageInfo
+        *image_info;
+
+      char
+        *p,
+        *q;
+
+      WarningHandler
+        handler;
+
+      /*
+        Display visual image directory.
+      */
+      image_info=AcquireImageInfo();
+      (void) CloneString(&image_info->size,"64x64");
+      (void) FormatLocaleFile(file,"    montageDirectory: ");
+      p=image->directory;
+      while (*p != '\0')
+      {
+        q=p;
+        while ((*q != '\xff') && (*q != '\0'))
+          q++;
+        (void) CopyMagickString(image_info->filename,p,(size_t) (q-p+1));
+        p=q+1;
+        YAMLFormatLocaleFile(file,"\n       - name: %s",
+          image_info->filename);
+        handler=SetWarningHandler((WarningHandler) NULL);
+        tile=ReadImage(image_info,exception);
+        (void) SetWarningHandler(handler);
+        if (tile == (Image *) NULL)
+          {
+            (void) FormatLocaleFile(file,"    ");
+            continue;
+          }
+        (void) FormatLocaleFile(file,"\n       - info: %.20gx%.20g %s",
+          (double) tile->magick_columns,(double) tile->magick_rows,
+          tile->magick);
+        (void) SignatureImage(tile,exception);
+        ResetImagePropertyIterator(tile);
+        property=GetNextImageProperty(tile);
+        while (property != (const char *) NULL)
+        {
+          YAMLFormatLocaleFile(file,"\n       %s: ",property);
+          value=GetImageProperty(tile,property,exception);
+          YAMLFormatLocaleFile(file,"%s",value);
+          property=GetNextImageProperty(tile);
+        }
+        tile=DestroyImageList(tile);
+        (void) FormatLocaleFile(file,"\n    ");
+      }
+      (void) FormatLocaleFile(file,"\n");
+      image_info=DestroyImageInfo(image_info);
+    }
+  ResetImagePropertyIterator(image);
+  property=GetNextImageProperty(image);
+  if (property != (const char *) NULL)
+    {
+      size_t
+        n;
+
+      /*
+        Display image properties.
+      */
+      n=0;
+      (void) FormatLocaleFile(file,"    properties: \n");
+      while (property != (const char *) NULL)
+      {
+        if (n++ != 0)
+          (void) FormatLocaleFile(file,"\n");
+        YAMLFormatLocaleFile(file,"      %s: ",property);
+        value=GetImageProperty(image,property,exception);
+        YAMLFormatLocaleFile(file,"%s",value);
+        property=GetNextImageProperty(image);
+      }
+      (void) FormatLocaleFile(file,"\n    \n");
+    }
+  (void) FormatLocaleString(key,MagickPathExtent,"8BIM:1999,2998:#1");
+  value=GetImageProperty(image,key,exception);
+  if (value != (const char *) NULL)
+    {
+      /*
+        Display clipping path.
+      */
+      YAMLFormatLocaleFile(file,"    clipping path: %s\n",value);
+    }
+  ResetImageProfileIterator(image);
+  name=GetNextImageProfile(image);
+  if (name != (char *) NULL)
+    {
+      const StringInfo
+        *profile;
+
+      size_t
+        n;
+
+      /*
+        Identify image profiles.
+      */
+      n=0;
+      (void) FormatLocaleFile(file,"    profiles: \n");
+      while (name != (char *) NULL)
+      {
+        profile=GetImageProfile(image,name);
+        if (profile == (StringInfo *) NULL)
+          continue;
+        if (n++ != 0)
+          (void) FormatLocaleFile(file,"\n");
+        YAMLFormatLocaleFile(file,"      %s: \n",name);
+        if (LocaleCompare(name,"iptc") == 0)
+          EncodeIptcProfile(file,profile);
+        (void) FormatLocaleFile(file,"        length: %.20g",(double)
+          GetStringInfoLength(profile));
+        (void) FormatLocaleFile(file,"\n      ");
+        name=GetNextImageProfile(image);
+      }
+      (void) FormatLocaleFile(file,"\n    \n");
+    }
+  ResetImageArtifactIterator(image);
+  artifact=GetNextImageArtifact(image);
+  if (artifact != (const char *) NULL)
+    {
+      ssize_t
+        n;
+
+      /*
+        Display image artifacts.
+      */
+      n=0;
+      (void) FormatLocaleFile(file,"    artifacts: \n");
+      while (artifact != (const char *) NULL)
+      {
+        if (n++ != 0)
+          (void) FormatLocaleFile(file,"\n");
+        YAMLFormatLocaleFile(file,"      %s: ",artifact);
+        value=GetImageArtifact(image,artifact);
+        YAMLFormatLocaleFile(file,"%s",value);
+        artifact=GetNextImageArtifact(image);
+      }
+      (void) FormatLocaleFile(file,"\n    \n");
+    }
+  ResetImageRegistryIterator();
+  registry=GetNextImageRegistry();
+  if (registry != (const char *) NULL)
+    {
+      ssize_t
+        n;
+
+      /*
+        Display image registry.
+      */
+      (void) FormatLocaleFile(file,"    registry: \n");
+      n=0;
+      while (registry != (const char *) NULL)
+      {
+        if (n++ != 0)
+          (void) FormatLocaleFile(file,"\n");
+        YAMLFormatLocaleFile(file,"      %s: ",registry);
+        value=(const char *) GetImageRegistry(StringRegistryType,registry,
+          exception);
+        YAMLFormatLocaleFile(file,"%s",value);
+        registry=GetNextImageRegistry();
+      }
+      (void) FormatLocaleFile(file,"    \n");
+    }
+  (void) FormatLocaleFile(file,"    tainted: %s\n",
+    image->taint != MagickFalse ? "true" : "false");
+  (void) FormatMagickSize(image->extent,MagickFalse,"B",MagickPathExtent,
+    format);
+  YAMLFormatLocaleFile(file,"    filesize: %s\n",format);
+  (void) FormatMagickSize((MagickSizeType) image->columns*image->rows,
+    MagickFalse,"B",MagickPathExtent,format);
+  if (strlen(format) > 1)
+    format[strlen(format)-1]='\0';
+  YAMLFormatLocaleFile(file,"    numberPixels: %s\n",format);
+  (void) FormatMagickSize((MagickSizeType) ((double) image->columns*image->rows/
+    elapsed_time+0.5),MagickFalse,"B",MagickPathExtent,format);
+  YAMLFormatLocaleFile(file,"    pixelsPerSecond: %s\n",format);
+  (void) FormatLocaleFile(file,"    userTime: %0.3fu\n",user_time);
+  (void) FormatLocaleFile(file,"    elapsedTime: %lu:%02lu.%03lu\n",
+    (unsigned long) (elapsed_time/60.0),(unsigned long) ceil(fmod(
+    elapsed_time,60.0)),(unsigned long) (1000.0*(elapsed_time-floor(
+    elapsed_time))));
+  YAMLFormatLocaleFile(file,"    version: %s\n",GetMagickVersion(
+    (size_t *) NULL));
+  (void) FormatLocaleFile(file,"...\n");
+  (void) fflush(file);
+  return(ferror(file) != 0 ? MagickFalse : MagickTrue);
+}
+
+static MagickBooleanType WriteYAMLImage(const ImageInfo *image_info,
+  Image *image,ExceptionInfo *exception)
+{
+  FILE
+    *file;
+
+  MagickBooleanType
+    status;
+
+  MagickOffsetType
+    scene;
+
+  size_t
+    number_scenes;
+
+  /*
+    Open output image file.
+  */
+  assert(image_info != (const ImageInfo *) NULL);
+  assert(image_info->signature == MagickCoreSignature);
+  assert(image != (Image *) NULL);
+  assert(image->signature == MagickCoreSignature);
+  if (image->debug != MagickFalse)
+    (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+  status=OpenBlob(image_info,image,WriteBlobMode,exception);
+  if (status == MagickFalse)
+    return(status);
+  file=GetBlobFileHandle(image);
+  if (file == (FILE *) NULL)
+    file=stdout;
+  scene=0;
+  number_scenes=GetImageListLength(image);
+  do
+  {
+    image->magick_columns=image->columns;
+    image->magick_rows=image->rows;
+    (void) EncodeImageAttributes(image,file,exception);
+    if (GetNextImageInList(image) == (Image *) NULL)
+      break;
+    image=SyncNextImageInList(image);
+    status=SetImageProgress(image,SaveImagesTag,scene++,number_scenes);
+    if (status == MagickFalse)
+      break;
+  } while (image_info->adjoin != MagickFalse);
+  (void) CloseBlob(image);
+  return(MagickTrue);
+}
diff --git a/coders/yaml.h b/coders/yaml.h
new file mode 100644
index 0000000..7dc6f1d
--- /dev/null
+++ b/coders/yaml.h
@@ -0,0 +1,31 @@
+/*
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
+  dedicated to making software imaging solutions freely available.
+  
+  You may not use this file except in compliance with the License.  You may
+  obtain a copy of the License at
+  
+    https://imagemagick.org/script/license.php
+  
+  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.
+*/
+
+#include "coders/coders-private.h"
+
+#define MagickYAMLHeaders
+
+#define MagickYAMLAliases
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+MagickCoderExports(YAML)
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
\ No newline at end of file
diff --git a/coders/ycbcr.c b/coders/ycbcr.c
index 85c49d5..dbe3e59 100644
--- a/coders/ycbcr.c
+++ b/coders/ycbcr.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -118,7 +118,7 @@
   QuantumType
     quantum_type;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -230,13 +230,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -311,13 +311,13 @@
         {
           for (i=0; i < (ssize_t) (image->alpha_trait != UndefinedPixelTrait ? 4 : 3); i++)
           {
-            register const Quantum
+            const Quantum
               *magick_restrict p;
 
-            register Quantum
+            Quantum
               *magick_restrict q;
 
-            register ssize_t
+            ssize_t
               x;
 
             if (count != (ssize_t) length)
@@ -403,13 +403,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -456,13 +456,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -509,13 +509,13 @@
           }
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -564,13 +564,13 @@
           {
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -656,13 +656,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -727,13 +727,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -798,13 +798,13 @@
         stream=ReadBlobStream(image,length,pixels,&count);
         for (y=0; y < (ssize_t) image->extract_info.height; y++)
         {
-          register const Quantum
+          const Quantum
             *magick_restrict p;
 
-          register Quantum
+          Quantum
             *magick_restrict q;
 
-          register ssize_t
+          ssize_t
             x;
 
           if (count != (ssize_t) length)
@@ -871,13 +871,13 @@
             stream=ReadBlobStream(image,length,pixels,&count);
             for (y=0; y < (ssize_t) image->extract_info.height; y++)
             {
-              register const Quantum
+              const Quantum
                 *magick_restrict p;
 
-              register Quantum
+              Quantum
                 *magick_restrict q;
 
-              register ssize_t
+              ssize_t
                 x;
 
               if (count != (ssize_t) length)
@@ -1080,7 +1080,7 @@
   QuantumType
     quantum_type;
 
-  register const Quantum
+  const Quantum
     *p;
 
   size_t
diff --git a/coders/ycbcr.h b/coders/ycbcr.h
index 3e7a331..102cd9f 100644
--- a/coders/ycbcr.h
+++ b/coders/ycbcr.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/coders/yuv.c b/coders/yuv.c
index 0733f8d..44f1676 100644
--- a/coders/yuv.c
+++ b/coders/yuv.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -109,13 +109,13 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     x;
 
-  register Quantum
+  Quantum
     *q;
 
-  register unsigned char
+  unsigned char
     *p;
 
   ssize_t
@@ -234,7 +234,7 @@
       }
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register Quantum
+      Quantum
         *chroma_pixels;
 
       if (interlace == NoInterlace)
@@ -451,7 +451,7 @@
       }
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *chroma_pixels;
 
       q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
@@ -623,11 +623,11 @@
   MagickOffsetType
     scene;
 
-  register const Quantum
+  const Quantum
     *p,
     *s;
 
-  register ssize_t
+  ssize_t
     x;
 
   size_t
diff --git a/coders/yuv.h b/coders/yuv.h
index 606aae7..fd1c15b 100644
--- a/coders/yuv.h
+++ b/coders/yuv.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
   
   You may not use this file except in compliance with the License.  You may
diff --git a/common.shi.in b/common.shi.in
index e4fc65d..2a82b2d 100644
--- a/common.shi.in
+++ b/common.shi.in
@@ -1,5 +1,5 @@
 # -*- shell-script -*-
-# Copyright 1999-2020 ImageMagick Studio LLC
+# Copyright 1999-2021 ImageMagick Studio LLC
 # Definitions of optional features and configuration values for this build.
 # Intended for use by test scripts.
 MAGICK_FEATURES='@MAGICK_FEATURES@'
diff --git a/config/ImageMagick.rdf.in b/config/ImageMagick.rdf.in
index a5c9622..da257ba 100644
--- a/config/ImageMagick.rdf.in
+++ b/config/ImageMagick.rdf.in
@@ -131,7 +131,6 @@
     </release>
 
     <download-page rdf:resource="https://imagemagick.org/script/download.php"/>
-    <download-mirror rdf:resource="https://sourceforge.net/projects/imagemagick/"/>
 
     <!-- Licensing details -->
     <license rdf:resource="https://imagemagick.org/script/license.php"/>
diff --git a/config/Makefile.am b/config/Makefile.am
index b226467..8717bb4 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/config/ar-lib b/config/ar-lib
index 0baa4f6..1e9388e 100755
--- a/config/ar-lib
+++ b/config/ar-lib
@@ -2,9 +2,9 @@
 # Wrapper for Microsoft lib.exe
 
 me=ar-lib
-scriptversion=2012-03-01.08; # UTC
+scriptversion=2019-07-04.01; # UTC
 
-# Copyright (C) 2010-2018 Free Software Foundation, Inc.
+# Copyright (C) 2010-2020 Free Software Foundation, Inc.
 # Written by Peter Rosin <peda@lysator.liu.se>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@
 	  MINGW*)
 	    file_conv=mingw
 	    ;;
-	  CYGWIN*)
+	  CYGWIN* | MSYS*)
 	    file_conv=cygwin
 	    ;;
 	  *)
@@ -65,7 +65,7 @@
 	mingw)
 	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
 	  ;;
-	cygwin)
+	cygwin | msys)
 	  file=`cygpath -m "$file" || echo "$file"`
 	  ;;
 	wine)
@@ -224,10 +224,11 @@
       esac
     done
   else
-    $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
-    do
-      $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
-    done
+    $AR -NOLOGO -LIST "$archive" | tr -d '\r' | sed -e 's/\\/\\\\/g' \
+      | while read member
+        do
+          $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
+        done
   fi
 
 elif test -n "$quick$replace"; then
diff --git a/config/coder.xml b/config/coder.xml
index 4d2394f..bd80a22 100644
--- a/config/coder.xml
+++ b/config/coder.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE codermap [
-<!ELEMENT codermap (coder)+>
+<!ELEMENT codermap (coder)*>
   <!ATTLIST codermap xmlns CDATA #FIXED ''>
   <!ELEMENT coder EMPTY>
   <!ATTLIST coder xmlns CDATA #FIXED '' magick NMTOKEN #REQUIRED
diff --git a/config/colors.xml b/config/colors.xml
index 55bfb5d..201b735 100644
--- a/config/colors.xml
+++ b/config/colors.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE colormap [
-<!ELEMENT colormap (color)+>
+<!ELEMENT colormap (color)*>
 <!ELEMENT color (#PCDATA)>
 <!ATTLIST color name CDATA "0">
 <!ATTLIST color color CDATA "rgb(0,0,0)">
diff --git a/config/compile b/config/compile
index 99e5052..23fcba0 100755
--- a/config/compile
+++ b/config/compile
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@
 	  MINGW*)
 	    file_conv=mingw
 	    ;;
-	  CYGWIN*)
+	  CYGWIN* | MSYS*)
 	    file_conv=cygwin
 	    ;;
 	  *)
@@ -67,7 +67,7 @@
 	mingw/*)
 	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
 	  ;;
-	cygwin/*)
+	cygwin/* | msys/*)
 	  file=`cygpath -m "$file" || echo "$file"`
 	  ;;
 	wine/*)
diff --git a/config/config.h.in b/config/config.h.in
index c7b10b6..ec635b1 100644
--- a/config/config.h.in
+++ b/config/config.h.in
@@ -741,7 +741,7 @@
 /* Define if you have JPEG library */
 #undef JPEG_DELEGATE
 
-/* Define if you have brunsli library */
+/* Define if you have jpeg-xl library */
 #undef JXL_DELEGATE
 
 /* Define if you have LCMS library */
diff --git a/config/depcomp b/config/depcomp
index 65cbf70..6b39162 100755
--- a/config/depcomp
+++ b/config/depcomp
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2020 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/config/english.xml b/config/english.xml
index d38285b..9dfec03 100644
--- a/config/english.xml
+++ b/config/english.xml
@@ -1339,6 +1339,11 @@
         average image sequence
       </message>
     </Average>
+    <Blur>
+      <message name="Image">
+        blur image
+      </message>
+    </Blur>
     <Chop>
       <message name="Image">
         chop image
diff --git a/config/francais.xml b/config/francais.xml
index 66c82ef..28b018d 100644
--- a/config/francais.xml
+++ b/config/francais.xml
@@ -1318,6 +1318,11 @@
         Moyenner la séquence d'images
       </message>
     </Average>
+    <Blur>
+      <message name="Image">
+        Blur de l'image
+      </message>
+    </Blur>
     <Chop>
       <message name="Image">
         Cisailler l'image
diff --git a/config/install-sh b/config/install-sh
index 8175c64..20d8b2e 100755
--- a/config/install-sh
+++ b/config/install-sh
@@ -451,7 +451,18 @@
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
 
     # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+    (umask $cp_umask &&
+     { test -z "$stripcmd" || {
+	 # Create $dsttmp read-write so that cp doesn't create it read-only,
+	 # which would cause strip to fail.
+	 if test -z "$doit"; then
+	   : >"$dsttmp" # No need to fork-exec 'touch'.
+	 else
+	   $doit touch "$dsttmp"
+	 fi
+       }
+     } &&
+     $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
diff --git a/config/mime.xml b/config/mime.xml
index 9530fc8..3b768df 100644
--- a/config/mime.xml
+++ b/config/mime.xml
@@ -827,6 +827,7 @@
   <mime type="image/x-gzeps" description="EPS image (gzip-compressed)" priority="100" pattern="*.epsi.gz" />
   <mime type="image/x-gzeps" description="EPS image (gzip-compressed)" priority="100" pattern="*.epsf.gz" />
   <mime type="image/x-ico" acronym="ICO" description="Windows Icon" priority="100" pattern="*.ico" />
+  <mime type="image/x-icon" acronym="ICO" description="Windows Icon" priority="100" pattern="*.ico" />
   <mime type="image/x-icns" description="MacOS X icon" data-type="string" offset="0" magic="icns" priority="50" />
   <mime type="image/x-icns" description="MacOS X icon" priority="100" pattern="*.icns" />
   <mime type="image/x-iff" description="IFF image" priority="100" pattern="*.iff" />
diff --git a/config/missing b/config/missing
index 625aeb1..8d0eaad 100755
--- a/config/missing
+++ b/config/missing
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
diff --git a/config/policy.xml b/config/policy.xml
index def82f9..56f299b 100644
--- a/config/policy.xml
+++ b/config/policy.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE policymap [
-  <!ELEMENT policymap (policy)+>
+  <!ELEMENT policymap (policy)*>
   <!ATTLIST policymap xmlns CDATA #FIXED ''>
   <!ELEMENT policy EMPTY>
   <!ATTLIST policy xmlns CDATA #FIXED '' domain NMTOKEN #REQUIRED
@@ -38,6 +38,10 @@
 
     <policy domain="resource" name="area" value="1GP"/>
 
+  Use the default system font unless overwridden by the application:
+
+    <policy domain="system" name="font" value="/usr/share/fonts/favorite.ttf"/>
+
   Define arguments for the memory, map, area, width, height and disk resources
   with SI prefixes (.e.g 100MB).  In addition, resource policies are maximums
   for each instance of ImageMagick (e.g. policy memory limit 1GB, -limit 2GB
@@ -74,4 +78,5 @@
   <!-- <policy domain="system" name="max-memory-request" value="256MiB"/> -->
   <!-- <policy domain="system" name="shred" value="2"/> -->
   <!-- <policy domain="system" name="precision" value="6"/> -->
+  <!-- <policy domain="system" name="font" value="/path/to/unicode-font.ttf"/> -->
 </policymap>
diff --git a/config/tap-driver.sh b/config/tap-driver.sh
index 2516e9c..865761d 100755
--- a/config/tap-driver.sh
+++ b/config/tap-driver.sh
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/config/test-driver b/config/test-driver
index b8521a4..89dba1e 100755
--- a/config/test-driver
+++ b/config/test-driver
@@ -3,7 +3,7 @@
 
 scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2020 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/configure b/configure
index f46bb71..c31fc72 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ImageMagick 7.0.10-46.
+# Generated by GNU Autoconf 2.69 for ImageMagick 7.0.10-57.
 #
 # Report bugs to <https://github.com/ImageMagick/ImageMagick/issues>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='ImageMagick'
 PACKAGE_TARNAME='ImageMagick'
-PACKAGE_VERSION='7.0.10-46'
-PACKAGE_STRING='ImageMagick 7.0.10-46'
+PACKAGE_VERSION='7.0.10-57'
+PACKAGE_STRING='ImageMagick 7.0.10-57'
 PACKAGE_BUGREPORT='https://github.com/ImageMagick/ImageMagick/issues'
 PACKAGE_URL='https://imagemagick.org'
 
@@ -838,6 +838,9 @@
 GS_LIBS
 GS_DELEGATE_FALSE
 GS_DELEGATE_TRUE
+GDI32_LIBS
+WINGDI32_DELEGATE_FALSE
+WINGDI32_DELEGATE_TRUE
 RAQM_DELEGATE_FALSE
 RAQM_DELEGATE_TRUE
 RAQM_LIBS
@@ -911,8 +914,8 @@
 HAVE_TCMALLOC_FALSE
 HAVE_TCMALLOC_TRUE
 JEMALLOC_LIBS
-HasJEMALLOC_FALSE
-HasJEMALLOC_TRUE
+HAVE_JEMALLOC_FALSE
+HAVE_JEMALLOC_TRUE
 GOMP_LIBS
 WITH_MAGICK_PLUS_PLUS_FALSE
 WITH_MAGICK_PLUS_PLUS_TRUE
@@ -975,17 +978,10 @@
 SHAREARCH_DIR
 INCLUDEARCH_DIR
 WinPathScript
-USING_CL_FALSE
-USING_CL_TRUE
 CYGWIN_BUILD_FALSE
 CYGWIN_BUILD_TRUE
 WIN32_NATIVE_BUILD_FALSE
 WIN32_NATIVE_BUILD_TRUE
-WINGDI32_DELEGATE_FALSE
-WINGDI32_DELEGATE_TRUE
-WS2_32_LIBS
-OLE_LIBS
-GDI32_LIBS
 HAVE_LD_VERSION_SCRIPT_FALSE
 HAVE_LD_VERSION_SCRIPT_TRUE
 PKG_CONFIG_LIBDIR
@@ -1221,6 +1217,7 @@
 with_fontconfig
 with_freetype
 with_raqm
+with_gdi32
 with_gslib
 with_fontpath
 with_gs_font_dir
@@ -1852,7 +1849,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ImageMagick 7.0.10-46 to adapt to many kinds of systems.
+\`configure' configures ImageMagick 7.0.10-57 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1927,7 +1924,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ImageMagick 7.0.10-46:";;
+     short | recursive ) echo "Configuration of ImageMagick 7.0.10-57:";;
    esac
   cat <<\_ACEOF
 
@@ -2040,6 +2037,7 @@
   --without-fontconfig    disable fontconfig support
   --without-freetype      disable Freetype support
   --without-raqm          disable Raqm support
+  --without-gdi32         disable Windows gdi32 support
   --with-gslib            enable Ghostscript library support
   --with-fontpath=DIR     prepend to default font search path
   --with-gs-font-dir=DIR  Ghostscript font directory
@@ -2047,7 +2045,7 @@
   --without-heic          disable HEIC support
   --without-jbig          disable JBIG support
   --without-jpeg          disable JPEG support
-  --without-jxl           disable Jpegxl support
+  --without-jxl           disable JPEG-XL support
   --without-lcms          disable lcms (v1.1X) support
   --without-openjp2       disable OpenJP2 support
   --without-lqr           disable Liquid Rescale support
@@ -2225,7 +2223,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ImageMagick configure 7.0.10-46
+ImageMagick configure 7.0.10-57
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3276,7 +3274,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ImageMagick $as_me 7.0.10-46, which was
+It was created by ImageMagick $as_me 7.0.10-57, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4262,7 +4260,7 @@
 
 # Define the identity of the package.
  PACKAGE='ImageMagick'
- VERSION='7.0.10-46'
+ VERSION='7.0.10-57'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4572,11 +4570,11 @@
 
 MAGICK_MICRO_VERSION=10
 
-MAGICK_PATCHLEVEL_VERSION=46
+MAGICK_PATCHLEVEL_VERSION=57
 
-MAGICK_VERSION=7.0.10-46
+MAGICK_VERSION=7.0.10-57
 
-MAGICK_GIT_REVISION=17973:4660af18c:20201130
+MAGICK_GIT_REVISION=18193:4633fa369:20210105
 
 
 # Substitute library versioning
@@ -9084,38 +9082,16 @@
 
 
 
-GDI32_LIBS=''
-WS2_32_LIBS=''
 native_win32_build='no'
 cygwin_build='no'
 case "${host_os}" in
     cygwin* )
         cygwin_build='yes'
-        GDI32_LIBS='-lgdi32'
     ;;
     mingw* )
         native_win32_build='yes'
-        GDI32_LIBS='-lgdi32'
-        OLE_LIBS='-loleaut32'
-        WS2_32_LIBS="-lws2_32"
     ;;
 esac
-if test "${GDI32_LIBS}x" != 'x'; then
-
-$as_echo "#define WINGDI32_DELEGATE 1" >>confdefs.h
-
-fi
-
-
-
- if  test "${GDI32_LIBS}x" != 'x' ; then
-  WINGDI32_DELEGATE_TRUE=
-  WINGDI32_DELEGATE_FALSE='#'
-else
-  WINGDI32_DELEGATE_TRUE='#'
-  WINGDI32_DELEGATE_FALSE=
-fi
-
  if  test "${native_win32_build}" = 'yes' ; then
   WIN32_NATIVE_BUILD_TRUE=
   WIN32_NATIVE_BUILD_FALSE='#'
@@ -9132,14 +9108,6 @@
   CYGWIN_BUILD_FALSE=
 fi
 
- if  test "x${CC}" = 'xcl.exe' ; then
-  USING_CL_TRUE=
-  USING_CL_FALSE='#'
-else
-  USING_CL_TRUE='#'
-  USING_CL_FALSE=
-fi
-
 
 WinPathScript="${srcdirfull}/winpath.sh"
 
@@ -26688,7 +26656,7 @@
       JEMALLOC_LIBS='-ljemalloc'
       LIBS="$JEMALLOC_LIBS $LIBS"
 
-$as_echo "#define HasJEMALLOC 1" >>confdefs.h
+$as_echo "#define HAVE_JEMALLOC 1" >>confdefs.h
 
       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -26700,11 +26668,11 @@
   fi
 fi
  if  test "$have_jemalloc" = 'yes'; then
-  HasJEMALLOC_TRUE=
-  HasJEMALLOC_FALSE='#'
+  HAVE_JEMALLOC_TRUE=
+  HAVE_JEMALLOC_FALSE='#'
 else
-  HasJEMALLOC_TRUE='#'
-  HasJEMALLOC_FALSE=
+  HAVE_JEMALLOC_TRUE='#'
+  HAVE_JEMALLOC_FALSE=
 fi
 
 
@@ -29804,6 +29772,96 @@
 
 
 #
+# Enable Windows gdi32 libraries
+#
+
+# Check whether --with-gdi32 was given.
+if test "${with_gdi32+set}" = set; then :
+  withval=$with_gdi32; with_gdi32=$withval
+else
+  with_gdi32='yes'
+fi
+
+if test "$with_gdi32" != 'yes' ; then
+    DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-gdi32=$with_gdi32 "
+fi
+
+#
+# Check for Windows gdi32 library.
+#
+have_gdi32='no'
+if test "$with_gdi32" != 'no'; then
+  GDI32_LIBS=''
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Windows GDI32 support" >&5
+$as_echo_n "checking for Windows GDI32 support... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+  failed=0
+  passed=0
+  ac_fn_c_check_header_mongrel "$LINENO" "windows.h" "ac_cv_header_windows_h" "$ac_includes_default"
+if test "x$ac_cv_header_windows_h" = xyes; then :
+  passed=`expr $passed + 1`
+else
+  failed=`expr $failed + 1`
+fi
+
+
+  ac_fn_c_check_header_compile "$LINENO" "winuser.h" "ac_cv_header_winuser_h" "#include <windows.h>
+"
+if test "x$ac_cv_header_winuser_h" = xyes; then :
+  passed=`expr $passed + 1`
+else
+  failed=`expr $failed + 1`
+fi
+
+
+  ac_fn_c_check_header_compile "$LINENO" "wingdi.h" "ac_cv_header_wingdi_h" "#include <windows.h>
+"
+if test "x$ac_cv_header_wingdi_h" = xyes; then :
+  passed=`expr $passed + 1`
+else
+  failed=`expr $failed + 1`
+fi
+
+
+  if test "$cygwin_build" = yes -o "$native_win32_build" = yes; then
+    passed=`expr $passed + 1`
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Windows GDI32 support is complete" >&5
+$as_echo_n "checking if Windows GDI32 support is complete... " >&6; }
+  if test $passed -gt 0; then
+    if test $failed -gt 0; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no -- some components failed test" >&5
+$as_echo "no -- some components failed test" >&6; }
+      have_gdi32='no (failed tests)'
+    else
+      GDI32_LIBS='-lgdi32 -luser32'
+      LIBS="$GDI32_LIBS $LIBS"
+
+$as_echo "#define WINGDI32_DELEGATE 1" >>confdefs.h
+
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      have_gdi32='yes'
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  fi
+fi
+ if test "$have_gdi32" = 'yes'; then
+  WINGDI32_DELEGATE_TRUE=
+  WINGDI32_DELEGATE_FALSE='#'
+else
+  WINGDI32_DELEGATE_TRUE='#'
+  WINGDI32_DELEGATE_FALSE=
+fi
+
+
+
+
+
+#
 # Check for Ghostscript library or framework.
 #
 # Test for iapi.h & test for gsapi_new_instance in -lgs
@@ -30491,50 +30549,56 @@
 if test "${with_jxl+set}" = set; then :
   withval=$with_jxl; with_jxl=$withval
 else
-  with_jxl='yes'
+  with_jxl='no'
 fi
 
 
 if test "$with_jxl" != 'yes'; then
     DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jxl=$with_jxl "
 fi
+if test "$enable_static" = 'yes'; then
+    if test "$with_utilities" = 'yes'; then
+        with_jxl='no'
+    fi
+fi
 
-# Check for the brunsli libraries, currently the only libraries used by the jxl coder.
-# Full jxl support will be added once the full libraries are released.
+# Check for the JPEG-XL library.
 have_jxl='no'
 JXL_LIBS=''
 if test "$with_jxl" != 'no'; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: -------------------------------------------------------------" >&5
 $as_echo "-------------------------------------------------------------" >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for brunsli" >&5
-$as_echo_n "checking for brunsli... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg-xl" >&5
+$as_echo_n "checking for jpeg-xl... " >&6; }
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
   failed=0
   passed=0
-  ac_fn_c_check_header_mongrel "$LINENO" "brunsli/decode.h" "ac_cv_header_brunsli_decode_h" "$ac_includes_default"
-if test "x$ac_cv_header_brunsli_decode_h" = xyes; then :
+  ac_fn_c_check_header_mongrel "$LINENO" "jxl/decode.h" "ac_cv_header_jxl_decode_h" "$ac_includes_default"
+if test "x$ac_cv_header_jxl_decode_h" = xyes; then :
   passed=`expr $passed + 1`
 else
   failed=`expr $failed + 1`
 fi
 
 
-  ac_fn_c_check_header_mongrel "$LINENO" "brunsli/encode.h" "ac_cv_header_brunsli_encode_h" "$ac_includes_default"
-if test "x$ac_cv_header_brunsli_encode_h" = xyes; then :
+  ac_fn_c_check_header_mongrel "$LINENO" "jxl/encode.h" "ac_cv_header_jxl_encode_h" "$ac_includes_default"
+if test "x$ac_cv_header_jxl_encode_h" = xyes; then :
   passed=`expr $passed + 1`
 else
   failed=`expr $failed + 1`
 fi
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DecodeBrunsli in -lbrunslidec-c" >&5
-$as_echo_n "checking for DecodeBrunsli in -lbrunslidec-c... " >&6; }
-if ${ac_cv_lib_brunslidec_c_DecodeBrunsli+:} false; then :
+  # This check should be changed once we have a .pc file for the JPEG-XL library.
+  if test "$enable_static" != 'yes'; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JxlDecoderCreate in -ljxl" >&5
+$as_echo_n "checking for JxlDecoderCreate in -ljxl... " >&6; }
+if ${ac_cv_lib_jxl_JxlDecoderCreate+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbrunslidec-c  $LIBS"
+LIBS="-ljxl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -30544,40 +30608,39 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char DecodeBrunsli ();
+char JxlDecoderCreate ();
 int
 main ()
 {
-return DecodeBrunsli ();
+return JxlDecoderCreate ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_brunslidec_c_DecodeBrunsli=yes
+  ac_cv_lib_jxl_JxlDecoderCreate=yes
 else
-  ac_cv_lib_brunslidec_c_DecodeBrunsli=no
+  ac_cv_lib_jxl_JxlDecoderCreate=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_brunslidec_c_DecodeBrunsli" >&5
-$as_echo "$ac_cv_lib_brunslidec_c_DecodeBrunsli" >&6; }
-if test "x$ac_cv_lib_brunslidec_c_DecodeBrunsli" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jxl_JxlDecoderCreate" >&5
+$as_echo "$ac_cv_lib_jxl_JxlDecoderCreate" >&6; }
+if test "x$ac_cv_lib_jxl_JxlDecoderCreate" = xyes; then :
   passed=`expr $passed + 1`
 else
   failed=`expr $failed + 1`
 fi
 
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EncodeBrunsli in -lbrunslienc-c" >&5
-$as_echo_n "checking for EncodeBrunsli in -lbrunslienc-c... " >&6; }
-if ${ac_cv_lib_brunslienc_c_EncodeBrunsli+:} false; then :
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JxlEncoderCreate in -ljxl" >&5
+$as_echo_n "checking for JxlEncoderCreate in -ljxl... " >&6; }
+if ${ac_cv_lib_jxl_JxlEncoderCreate+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lbrunslienc-c  $LIBS"
+LIBS="-ljxl  $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -30587,42 +30650,43 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char EncodeBrunsli ();
+char JxlEncoderCreate ();
 int
 main ()
 {
-return EncodeBrunsli ();
+return JxlEncoderCreate ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_brunslienc_c_EncodeBrunsli=yes
+  ac_cv_lib_jxl_JxlEncoderCreate=yes
 else
-  ac_cv_lib_brunslienc_c_EncodeBrunsli=no
+  ac_cv_lib_jxl_JxlEncoderCreate=no
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_brunslienc_c_EncodeBrunsli" >&5
-$as_echo "$ac_cv_lib_brunslienc_c_EncodeBrunsli" >&6; }
-if test "x$ac_cv_lib_brunslienc_c_EncodeBrunsli" = xyes; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jxl_JxlEncoderCreate" >&5
+$as_echo "$ac_cv_lib_jxl_JxlEncoderCreate" >&6; }
+if test "x$ac_cv_lib_jxl_JxlEncoderCreate" = xyes; then :
   passed=`expr $passed + 1`
 else
   failed=`expr $failed + 1`
 fi
 
+  fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if brunsli package is complete" >&5
-$as_echo_n "checking if brunsli package is complete... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if jpeg-xl package is complete" >&5
+$as_echo_n "checking if jpeg-xl package is complete... " >&6; }
   if test $passed -gt 0; then
       if test $failed -gt 0; then
           { $as_echo "$as_me:${as_lineno-$LINENO}: result: no -- some components failed test" >&5
 $as_echo "no -- some components failed test" >&6; }
           have_jxl='no (failed tests)'
       else
-          JXL_LIBS='-lbrunslidec-c -lbrunslienc-c'
+          JXL_LIBS='-ljxl'
           LIBS="$JXL_LIBS $LIBS"
 
 $as_echo "#define JXL_DELEGATE 1" >>confdefs.h
@@ -35787,9 +35851,9 @@
 #
 
 if test "$build_modules" != 'no'; then
-    MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZIPLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+    MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZIPLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
 else
-    MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+    MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
 fi
 MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
 
@@ -36014,10 +36078,6 @@
   as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${WINGDI32_DELEGATE_TRUE}" && test -z "${WINGDI32_DELEGATE_FALSE}"; then
-  as_fn_error $? "conditional \"WINGDI32_DELEGATE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${WIN32_NATIVE_BUILD_TRUE}" && test -z "${WIN32_NATIVE_BUILD_FALSE}"; then
   as_fn_error $? "conditional \"WIN32_NATIVE_BUILD\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36026,10 +36086,6 @@
   as_fn_error $? "conditional \"CYGWIN_BUILD\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${USING_CL_TRUE}" && test -z "${USING_CL_FALSE}"; then
-  as_fn_error $? "conditional \"USING_CL\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
   as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36067,8 +36123,8 @@
   as_fn_error $? "conditional \"WITH_MAGICK_PLUS_PLUS\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${HasJEMALLOC_TRUE}" && test -z "${HasJEMALLOC_FALSE}"; then
-  as_fn_error $? "conditional \"HasJEMALLOC\" was never defined.
+if test -z "${HAVE_JEMALLOC_TRUE}" && test -z "${HAVE_JEMALLOC_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_JEMALLOC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${HAVE_TCMALLOC_TRUE}" && test -z "${HAVE_TCMALLOC_FALSE}"; then
@@ -36135,6 +36191,10 @@
   as_fn_error $? "conditional \"RAQM_DELEGATE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${WINGDI32_DELEGATE_TRUE}" && test -z "${WINGDI32_DELEGATE_FALSE}"; then
+  as_fn_error $? "conditional \"WINGDI32_DELEGATE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${GS_DELEGATE_TRUE}" && test -z "${GS_DELEGATE_FALSE}"; then
   as_fn_error $? "conditional \"GS_DELEGATE\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -36648,7 +36708,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ImageMagick $as_me 7.0.10-46, which was
+This file was extended by ImageMagick $as_me 7.0.10-57, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -36715,7 +36775,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ImageMagick config.status 7.0.10-46
+ImageMagick config.status 7.0.10-57
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -38050,7 +38110,9 @@
     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "Something went wrong bootstrapping makefile fragments
-    for automatic dependency tracking.  Try re-running configure with the
+    for automatic dependency tracking.  If GNU make was not used, consider
+    re-running the configure script with MAKE=\"gmake\" (or whatever is
+    necessary).  You can also try re-running configure with the
     '--disable-dependency-tracking' option to at least be able to build
     the package (albeit without support for automatic dependency tracking).
 See \`config.log' for more details" "$LINENO" 5; }
diff --git a/configure.ac b/configure.ac
index ad8a72e..b2fd673 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
@@ -27,7 +27,7 @@
 m4_define([magick_major_version], [7])
 m4_define([magick_minor_version], [0])
 m4_define([magick_micro_version], [10])
-m4_define([magick_patchlevel_version], [46])
+m4_define([magick_patchlevel_version], [57])
 m4_define([magick_version],
           [magick_major_version.magick_minor_version.magick_micro_version-magick_patchlevel_version])
 m4_define([magick_git_revision],
@@ -342,32 +342,18 @@
 AC_EXEEXT
 AC_OBJEXT
 
-GDI32_LIBS=''
-WS2_32_LIBS=''
 native_win32_build='no'
 cygwin_build='no'
 case "${host_os}" in
     cygwin* )
         cygwin_build='yes'
-        GDI32_LIBS='-lgdi32'
     ;;
     mingw* )
         native_win32_build='yes'
-        GDI32_LIBS='-lgdi32'
-        OLE_LIBS='-loleaut32'
-        WS2_32_LIBS="-lws2_32"
     ;;
 esac
-if test "${GDI32_LIBS}x" != 'x'; then
-    AC_DEFINE([WINGDI32_DELEGATE],[1],[Define to use the Windows GDI32 library])
-fi
-AC_SUBST([GDI32_LIBS])
-AC_SUBST([OLE_LIBS])
-AC_SUBST([WS2_32_LIBS])
-AM_CONDITIONAL([WINGDI32_DELEGATE],[ test "${GDI32_LIBS}x" != 'x' ])
 AM_CONDITIONAL([WIN32_NATIVE_BUILD],[ test "${native_win32_build}" = 'yes' ])
 AM_CONDITIONAL([CYGWIN_BUILD],[ test "${cygwin_build}" = 'yes' ])
-AM_CONDITIONAL([USING_CL],[ test "x${CC}" = 'xcl.exe' ])
 
 WinPathScript="${srcdirfull}/winpath.sh"
 AC_SUBST([WinPathScript])
@@ -1339,7 +1325,7 @@
     else
       JEMALLOC_LIBS='-ljemalloc'
       LIBS="$JEMALLOC_LIBS $LIBS"
-      AC_DEFINE([HasJEMALLOC],[1],[Define if you have jemalloc memory allocation library])
+      AC_DEFINE([HAVE_JEMALLOC],[1],[Define if you have jemalloc memory allocation library])
       AC_MSG_RESULT([yes])
       have_jemalloc='yes'
     fi
@@ -1347,7 +1333,7 @@
     AC_MSG_RESULT([no])
   fi
 fi
-AM_CONDITIONAL([HasJEMALLOC],[ test "$have_jemalloc" = 'yes'])
+AM_CONDITIONAL([HAVE_JEMALLOC],[ test "$have_jemalloc" = 'yes'])
 AC_SUBST([JEMALLOC_LIBS])
 
 #
@@ -2117,6 +2103,56 @@
 dnl ===========================================================================
 
 #
+# Enable Windows gdi32 libraries
+#
+AC_ARG_WITH([gdi32],
+    AS_HELP_STRING([--without-gdi32],
+                   [disable Windows gdi32 support]),
+    [with_gdi32=$withval],
+    [with_gdi32='yes'])
+if test "$with_gdi32" != 'yes' ; then
+    DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-gdi32=$with_gdi32 "
+fi
+
+#
+# Check for Windows gdi32 library.
+#
+have_gdi32='no'
+if test "$with_gdi32" != 'no'; then
+  GDI32_LIBS=''
+  AC_MSG_CHECKING([for Windows GDI32 support])
+  AC_MSG_RESULT()
+  failed=0
+  passed=0
+  AC_CHECK_HEADER([windows.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
+  AC_CHECK_HEADER([winuser.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[#include <windows.h>])
+  AC_CHECK_HEADER([wingdi.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[#include <windows.h>])
+  if test "$cygwin_build" = yes -o "$native_win32_build" = yes; then
+    passed=`expr $passed + 1`
+  fi
+  AC_MSG_CHECKING([if Windows GDI32 support is complete])
+  if test $passed -gt 0; then
+    if test $failed -gt 0; then
+      AC_MSG_RESULT([no -- some components failed test])
+      have_gdi32='no (failed tests)'
+    else
+      GDI32_LIBS='-lgdi32 -luser32'
+      LIBS="$GDI32_LIBS $LIBS"
+      AC_DEFINE([WINGDI32_DELEGATE],[1],[Define to use the Windows GDI32 library])
+      AC_MSG_RESULT([yes])
+      have_gdi32='yes'
+    fi
+  else
+    AC_MSG_RESULT([no])
+  fi
+fi
+AM_CONDITIONAL([WINGDI32_DELEGATE], [test "$have_gdi32" = 'yes'])
+AC_SUBST([GDI32_LIBS])
+
+
+dnl ===========================================================================
+
+#
 # Check for Ghostscript library or framework.
 #
 # Test for iapi.h & test for gsapi_new_instance in -lgs
@@ -2361,39 +2397,45 @@
 #
 AC_ARG_WITH([jxl],
     [AC_HELP_STRING([--without-jxl],
-                    [disable Jpegxl support])],
+                    [disable JPEG-XL support])],
     [with_jxl=$withval],
-    [with_jxl='yes'])
+    [with_jxl='no'])
 
 if test "$with_jxl" != 'yes'; then
     DISTCHECK_CONFIG_FLAGS="${DISTCHECK_CONFIG_FLAGS} --with-jxl=$with_jxl "
 fi
+if test "$enable_static" = 'yes'; then
+    if test "$with_utilities" = 'yes'; then
+        with_jxl='no'
+    fi
+fi
 
-# Check for the brunsli libraries, currently the only libraries used by the jxl coder.
-# Full jxl support will be added once the full libraries are released.
+# Check for the JPEG-XL library.
 have_jxl='no'
 JXL_LIBS=''
 if test "$with_jxl" != 'no'; then
   AC_MSG_RESULT([-------------------------------------------------------------])
-  AC_MSG_CHECKING([for brunsli])
+  AC_MSG_CHECKING([for jpeg-xl])
   AC_MSG_RESULT([])
   failed=0
   passed=0
-  AC_CHECK_HEADER([brunsli/decode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
-  AC_CHECK_HEADER([brunsli/encode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
-  AC_CHECK_LIB([brunslidec-c],[DecodeBrunsli],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
+  AC_CHECK_HEADER([jxl/decode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
+  AC_CHECK_HEADER([jxl/encode.h],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`])
+  # This check should be changed once we have a .pc file for the JPEG-XL library.
+  if test "$enable_static" != 'yes'; then
+    AC_CHECK_LIB([jxl],[JxlDecoderCreate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
+    AC_CHECK_LIB([jxl],[JxlEncoderCreate],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
+  fi
 
-  AC_CHECK_LIB([brunslienc-c],[EncodeBrunsli],[passed=`expr $passed + 1`],[failed=`expr $failed + 1`],[])
-
-  AC_MSG_CHECKING([if brunsli package is complete])
+  AC_MSG_CHECKING([if jpeg-xl package is complete])
   if test $passed -gt 0; then
       if test $failed -gt 0; then
           AC_MSG_RESULT([no -- some components failed test])
           have_jxl='no (failed tests)'
       else
-          JXL_LIBS='-lbrunslidec-c -lbrunslienc-c'
+          JXL_LIBS='-ljxl'
           LIBS="$JXL_LIBS $LIBS"
-          AC_DEFINE([JXL_DELEGATE],[1],[Define if you have brunsli library])
+          AC_DEFINE([JXL_DELEGATE],[1],[Define if you have jpeg-xl library])
           AC_MSG_RESULT([yes])
           have_jxl='yes'
       fi
@@ -3914,9 +3956,9 @@
 #
 
 if test "$build_modules" != 'no'; then
-    MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZIPLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+    MAGICK_DEP_LIBS="$USER_LIBS $LCMS_LIBS $FREETYPE_LIBS $RAQM_LIBS $LQR_LIBS $FFTW_LIBS $XML_LIBS $FLIF_LIBS $FONTCONFIG_LIBS $XEXT_LIBS $IPC_LIBS $X11_LIBS $XT_LIBS $LZMA_LIBS $BZLIB_LIBS $ZLIB_LIBS $ZIPLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
 else
-    MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $WS2_32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
+    MAGICK_DEP_LIBS="$USER_LIBS $JBIG_LIBS $LCMS_LIBS $TIFF_LIBS $FREETYPE_LIBS $RAQM_LIBS $JPEG_LIBS $JXL_LIBS $GS_LIBS $LQR_LIBS $PNG_LIBS $AUTOTRACE_LIBS $DJVU_LIBS $FFTW_LIBS $FLIF_LIBS $FPX_LIBS $FONTCONFIG_LIBS $HEIF_LIBS $WEBPMUX_LIBS $WEBP_LIBS $WMF_LIBS $DPS_LIBS $XEXT_LIBS $XT_LIBS $IPC_LIBS $X11_LIBS $LZMA_LIBS $BZLIB_LIBS $OPENEXR_LIBS $LIBOPENJP2_LIBS $PANGO_LIBS $RAW_R_LIBS $RSVG_LIBS $XML_LIBS $GVC_LIBS $ZLIB_LIBS $ZLIB_LIBS $ZSTD_LIBS $LTDL_LIBS $GDI32_LIBS $MATH_LIBS $CL_LIBS $UMEM_LIBS $JEMALLOC_LIBS $THREAD_LIBS $TCMALLOC_LIBS"
 fi
 MAGICK_EXTRA_DEP_LIBS="$GOMP_LIBS"
 AC_SUBST([MAGICK_DEP_LIBS])
diff --git a/filters/Android.bp b/filters/Android.bp
index af29fdc..3315258 100644
--- a/filters/Android.bp
+++ b/filters/Android.bp
@@ -12,6 +12,18 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "external_ImageMagick_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    //   SPDX-license-identifier-MIT
+    //   legacy_notice
+    //   legacy_unencumbered
+    default_applicable_licenses: ["external_ImageMagick_license"],
+}
+
 cc_library_static {
     name: "Magick_filters",
 
diff --git a/filters/Makefile.am b/filters/Makefile.am
index 332eecc..37f85b6 100644
--- a/filters/Makefile.am
+++ b/filters/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/filters/analyze.c b/filters/analyze.c
index 836a257..c4bcd30 100644
--- a/filters/analyze.c
+++ b/filters/analyze.c
@@ -15,7 +15,7 @@
 %                              December 1998                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -146,10 +146,10 @@
     image_view=AcquireVirtualCacheView(image,exception);
     for (y=0; y < (ssize_t) image->rows; y++)
     {
-      register const Quantum
+      const Quantum
         *p;
 
-      register ssize_t
+      ssize_t
         x;
 
       if (status == MagickFalse)
diff --git a/images/examples.jpg b/images/examples.jpg
index 76ec730..bf7de6b 100644
--- a/images/examples.jpg
+++ b/images/examples.jpg
Binary files differ
diff --git a/index.html b/index.html
index f25e22a..e8f23b1 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Convert, Edit, or Compose Bitmap Images</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="www/search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -97,9 +97,9 @@
 <p>ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under a derived Apache 2.0 <a href="www/license.html">license</a>.</p>
 <p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
 
-<p>The current release is ImageMagick <a href="www/download.html">7.0.10-39</a>.  It runs on <a href="www/download.html#unix">Linux</a>, <a href="www/download.html#windows">Windows</a>, <a href="www/download.html#macosx">Mac Os X</a>, <a href="www/download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
+<p>The current release is ImageMagick <a href="www/download.html">7.0.10-53</a>.  It runs on <a href="www/download.html#unix">Linux</a>, <a href="www/download.html#windows">Windows</a>, <a href="www/download.html#macosx">Mac Os X</a>, <a href="www/download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
 
-<p>The authoritative ImageMagick web site is <a href="index.html">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick" target="_blank">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick" target="_blank">https://gitlab.com/ImageMagick</a>.  We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
+<p>The authoritative ImageMagick web site is <a href="index.html">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick/ImageMagick" target="_blank">https://github.com/ImageMagick/ImageMagick</a>.  We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
 
 <h2><a class="anchor" id="features"></a>Features and Capabilities</h2>
 <p>Here are just a few <a href="www/examples.html">examples</a> of what ImageMagick can do for you:</p>
@@ -110,6 +110,10 @@
     <td>create a GIF animation sequence from a group of images.</td>
   </tr>
   <tr>
+    <td><a href="www/command-line-options.html#bilateral-blur">Bilateral blur</a></td>
+    <td>non-linear, edge-preserving, and noise-reducing smoothing filter.</td>
+  </tr>
+  <tr>
     <td><a href="www/color-management.html">Color management</a></td>
     <td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
   </tr>
@@ -271,7 +275,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -279,4 +283,4 @@
   <script>window.jQuery || document.write('<script src="www/assets/jquery.slim.min.js"><\/script>')</script><script src="www/assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:09 -->
+<!-- Magick Cache 1st January 2021 16:50 -->
\ No newline at end of file
diff --git a/m4/Makefile.am b/m4/Makefile.am
index cae11d8..9720c84 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/magick.sh.in b/magick.sh.in
index 221ec46..8027160 100755
--- a/magick.sh.in
+++ b/magick.sh.in
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 906e054..2197539 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+# Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 # dedicated to making software imaging solutions freely available.
 #
 # You may not use this file except in compliance with the License.
diff --git a/tests/cli-colorspace.tap b/tests/cli-colorspace.tap
index f253256..2c1cba3 100755
--- a/tests/cli-colorspace.tap
+++ b/tests/cli-colorspace.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/cli-pipe.tap b/tests/cli-pipe.tap
index 64a76d1..c8d01b9 100755
--- a/tests/cli-pipe.tap
+++ b/tests/cli-pipe.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/drawtest.c b/tests/drawtest.c
index ce55b4e..f7b9255 100644
--- a/tests/drawtest.c
+++ b/tests/drawtest.c
@@ -24,7 +24,7 @@
 %                                March 2002                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/tests/validate-colorspace.tap b/tests/validate-colorspace.tap
index 59d85f6..bc4bc0c 100755
--- a/tests/validate-colorspace.tap
+++ b/tests/validate-colorspace.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-compare.tap b/tests/validate-compare.tap
index b31d867..799673c 100755
--- a/tests/validate-compare.tap
+++ b/tests/validate-compare.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-composite.tap b/tests/validate-composite.tap
index 5d9c2fb..b8c9d46 100755
--- a/tests/validate-composite.tap
+++ b/tests/validate-composite.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-convert.tap b/tests/validate-convert.tap
index eda4b03..ae900a0 100755
--- a/tests/validate-convert.tap
+++ b/tests/validate-convert.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-formats-disk.tap b/tests/validate-formats-disk.tap
index 5ee6160..3ab15ef 100755
--- a/tests/validate-formats-disk.tap
+++ b/tests/validate-formats-disk.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-formats-map.tap b/tests/validate-formats-map.tap
index e0dc380..c1f9f60 100755
--- a/tests/validate-formats-map.tap
+++ b/tests/validate-formats-map.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-formats-memory.tap b/tests/validate-formats-memory.tap
index 40c1d43..da0317e 100755
--- a/tests/validate-formats-memory.tap
+++ b/tests/validate-formats-memory.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-identify.tap b/tests/validate-identify.tap
index d2e3c2a..6199e26 100755
--- a/tests/validate-identify.tap
+++ b/tests/validate-identify.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-import.tap b/tests/validate-import.tap
index f4f6135..05da56e 100755
--- a/tests/validate-import.tap
+++ b/tests/validate-import.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-montage.tap b/tests/validate-montage.tap
index fc136b2..17639be 100755
--- a/tests/validate-montage.tap
+++ b/tests/validate-montage.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate-stream.tap b/tests/validate-stream.tap
index 3480af0..0f27aca 100755
--- a/tests/validate-stream.tap
+++ b/tests/validate-stream.tap
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/tests/validate.c b/tests/validate.c
index c1b2483..a01a32e 100644
--- a/tests/validate.c
+++ b/tests/validate.c
@@ -18,7 +18,7 @@
 %                               March 2001                                    %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -1148,7 +1148,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1243,7 +1243,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1335,7 +1335,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1426,7 +1426,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1538,7 +1538,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -1832,7 +1832,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -2049,7 +2049,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -2234,7 +2234,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -2326,7 +2326,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i,
     j;
 
@@ -2461,7 +2461,7 @@
     memory_resource,
     map_resource;
 
-  register ssize_t
+  ssize_t
     i;
 
   TimerInfo
diff --git a/tests/validate.h b/tests/validate.h
index f53e6e5..cccad0a 100644
--- a/tests/validate.h
+++ b/tests/validate.h
@@ -1,5 +1,5 @@
 /*
-  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
   dedicated to making software imaging solutions freely available.
 
   You may not use this file except in compliance with the License.  You may
@@ -97,14 +97,24 @@
 static const char
   *convert_options[] =
   {
-    "-noop",
+    "",
     "-affine 1,0,0.785,1,0,0 -transform",
     "-black-threshold 20%",
     "-blur 0x0.5",
+    "-blur 0x1.0",
+    "-blur 0x2.0",
     "-border 6x6",
     "-canny 0x1+10%+80%",
+    "-channel red",
     "-charcoal 0x1",
+    "-chop 800x600+200+300",
     "-chop 8x6+20+30",
+    "-colorize 30%/20%/50%",
+    "-color-matrix '0,0,1,0,1,0,1,0,0'",
+    "-color-matrix '0.9 0 0, 0 0.9 0, 0 0 1.2'",
+    "-color-matrix '0.9,0,0,0,0.9,0,0,0,1.2'",
+    "-color-matrix '1,0,0,0,1,0,0,0,1'",
+    "-color-matrix '.22,.72,.07,.22,.72,.07,.22,.72,.07'",
     "-colors 16",
     "-colorspace CMYK",
     "-colorspace GRAY",
@@ -114,86 +124,125 @@
     "-colorspace YCbCr",
     "-colorspace YIQ",
     "-colorspace YUV",
-    "-contrast",
+    "+contrast +contrast +contrast",
+    "-contrast -contrast -contrast",
     "+contrast",
+    "-contrast",
     "-convolve 1,1,1,1,4,1,1,1,1",
-    "-colorize 30%/20%/50%",
     "-crop 17x9+10+10",
+    "-crop 600x700+100+100",
     "-cycle 200",
+    "-density 75x75 -resample 50x50",
     "-despeckle",
     "-draw \"rectangle 20,10 80,50\"",
     "-edge 0x1",
     "-emboss 0x1",
     "-enhance",
     "-equalize",
+    "-evaluate Abs 2%",
+    "-evaluate Add 233",
+    "-evaluate AddModulus 50%",
+    "-evaluate And 6",
+    "-evaluate Cosine 2",
+    "-evaluate Divide 0.7",
+    "-evaluate Exponential 1.0",
+    "-evaluate InverseLog 2",
+    "-evaluate Xor 233",
+    "-extent 1200x1200-100-100",
+    "-fill blue -fuzz 35% -opaque red",
+    "-fill blue -stroke gold -draw 'Bezier 400,200 1100,800 100,300'",
+    "-fill blue -stroke gold -draw 'polygon 400,200 1100,800 100,300'",
+    "-fill blue -stroke gold -draw 'rectangle 400,200 1100,800'",
+    "-fill blue -stroke gold -draw 'roundRectangle 400,200 1100,800 20,20'",
+    "-fill green -stroke gold -draw 'circle 800,500 1100,800'",
+    "-fill none -stroke gold -draw 'Bezier 400,200 1100,800 100,300'",
+    "-fill none -stroke gold -draw 'circle 800,500 1100,800'",
+    "-fill none -stroke gold -draw 'polygon 400,200 1100,800 100,300'",
+    "-fill none -stroke gold -draw 'rectangle 400,200 1100,800'",
+    "-fill none -stroke gold -draw 'roundRectangle 400,200 1100,800 20,20'",
     "-flip",
     "-flop",
     "-frame 15x15+3+3",
+    "-fuzz 35% -transparent red",
+    "-fuzz 5% -trim",
     "-fx \"(1.0/(1.0+exp(10.0*(0.5-u)))-0.006693)*1.0092503\"",
     "-gamma 1.6",
     "-gaussian 0x0.5",
+    "-gaussian 0x1.0",
+    "-gaussian 0x2.0",
     "-implode 0.5",
     "-implode -1",
     "-label Magick",
     "-lat 10x10-5%",
     "-level 10%,1.2,90%",
+    "-magnify",
     "-map netscape:",
+    "-median 1",
     "-median 2",
     "-modulate 110/100/95",
     "-monochrome",
     "-motion-blur 0x3+30",
     "-negate",
-    "+noise Uniform",
+    "-noise 1",
+    "-noise 2",
     "+noise Gaussian",
-    "+noise Multiplicative",
     "+noise Impulse",
     "+noise Laplacian",
+    "+noise Multiplicative",
     "+noise Poisson",
-    "-noise 2",
+    "+noise Random",
+    "+noise Uniform",
+    "-noop",
     "-normalize",
-    "-fill blue -fuzz 35% -opaque red",
     "-ordered-dither 2x2",
+    "-ordered-dither 3x3",
+    "-ordered-dither 4x4",
     "-paint 0x1",
     "-raise 10x10",
     "-random-threshold 10%",
-    "-color-matrix '0.9 0 0, 0 0.9 0, 0 0 1.2'",
-    "-density 75x75 -resample 50x50",
-    "-resize 10%",
-    "-resize 50%",
-    "-resize 50x150%",
+    "-random-threshold 20x80",
     "-resize 100%",
+    "-resize 10%",
     "-resize 150%",
     "-resize 150x75%",
+    "-resize 50%",
+    "-resize 50x150%",
     "-roll +20+10",
     "-rotate 0",
-    "-rotate 45",
-    "-rotate 90",
+    "-rotate 15",
     "-rotate 180",
     "-rotate 270",
-    "-sample 5%",
-    "-sample 50%",
-    "-sample 50x150%",
+    "-rotate 45",
+    "-rotate 90",
     "-sample 100%",
     "-sample 150%",
     "-sample 150x50%",
-    "-scale 5%",
-    "-scale 50%",
-    "-scale 50x150%",
+    "-sample 50%",
+    "-sample 50x150%",
+    "-sample 5%",
     "-scale 100%",
     "-scale 150%",
     "-scale 150x50%",
+    "-scale 50%",
+    "-scale 50x150%",
+    "-scale 5%",
+    "-segment 0.5x0.25",
     "-segment 1x1.5",
     "-shade 30x30",
+    "-sharpen 0x0.5",
     "-sharpen 0x1.0",
+    "-sharpen 0x2.0",
     "-shave 10x10",
+    "-shear 25x20",
     "-shear 45x45",
     "-size 130x194",
     "-solarize 50%",
+    "-spread 1",
     "-spread 3",
     "-swirl 90",
     "-threshold 35%",
-    "-fuzz 35% -transparent red",
-    "-fuzz 5% -trim",
+    "-trim",
+    "-unsharp 0x0.5+20+1",
     "-unsharp 0x1.0+20+1",
     "-wave 25x150",
     "-white-threshold 80%",
diff --git a/tests/wandtest.c b/tests/wandtest.c
index fc6c3c4..db4f10d 100644
--- a/tests/wandtest.c
+++ b/tests/wandtest.c
@@ -23,7 +23,7 @@
 %                                 March 2003                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -5185,7 +5185,7 @@
     *border,
     **pixels;
 
-  register ssize_t
+  ssize_t
     i;
 
   unsigned char
diff --git a/utilities/Makefile.am b/utilities/Makefile.am
index 19604e7..7ec046f 100644
--- a/utilities/Makefile.am
+++ b/utilities/Makefile.am
@@ -1,4 +1,4 @@
-#  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization
+#  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization
 #  dedicated to making software imaging solutions freely available.
 #
 #  You may not use this file except in compliance with the License.  You may
diff --git a/utilities/magick.c b/utilities/magick.c
index 1dd58bb..7c337ca 100644
--- a/utilities/magick.c
+++ b/utilities/magick.c
@@ -17,7 +17,7 @@
 %                               January 2012                                  %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
@@ -112,7 +112,7 @@
   MagickBooleanType
     status;
 
-  register ssize_t
+  ssize_t
     i;
 
   size_t
@@ -188,7 +188,7 @@
   int
     status;
 
-  register int
+  int
     i;
 
   utf8=NTArgvToUTF8(argc,argv);
diff --git a/version.sh b/version.sh
index 0f290e1..d286fe0 100644
--- a/version.sh
+++ b/version.sh
@@ -19,7 +19,7 @@
 PACKAGE_VERSION='7.0.10'
 PACKAGE_PERL_VERSION='7.0.10'
 PACKAGE_LIB_VERSION="0x70A"
-PACKAGE_RELEASE="46"
+PACKAGE_RELEASE="57"
 PACKAGE_LIB_VERSION_NUMBER="7,0,10,${PACKAGE_RELEASE}"
 PACKAGE_RELEASE_DATE_RAW=`date +%F`
 PACKAGE_RELEASE_DATE_REPRODUCIBLE="${PACKAGE_CHANGE_DATE}"
diff --git a/www/ImageMagickObject.html b/www/ImageMagickObject.html
index f8bf209..b3b418d 100644
--- a/www/ImageMagickObject.html
+++ b/www/ImageMagickObject.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Install the ImageMagickObject COM+ Component</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -160,7 +160,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -168,4 +168,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:16 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/advanced-unix-installation.html b/www/advanced-unix-installation.html
index df6d8ea..c271d1b 100644
--- a/www/advanced-unix-installation.html
+++ b/www/advanced-unix-installation.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Advanced Unix Source Installation</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -97,7 +97,7 @@
 
 <h2><a class="anchor" id="download"></a>Download &amp; Unpack</h2>
 
-<p>ImageMagick builds on a variety of Unix and Unix-like operating systems including Linux, Solaris, FreeBSD, Mac OS X, and others.  A compiler is required and fortunately almost all modern Unix systems have one.  Download <a href="https://imagemagick.org/download/ImageMagick.tar.gz">ImageMagick.tar.gz</a> from <a href="../download">ftp.imagemagick.org</a> or its <a href="download.html">mirrors</a> and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
+<p>ImageMagick builds on a variety of Unix and Unix-like operating systems including Linux, Solaris, FreeBSD, Mac OS X, and others.  A compiler is required and fortunately almost all modern Unix systems have one.  Download <a href="https://imagemagick.org/download/ImageMagick.tar.gz">ImageMagick.tar.gz</a> from <a href="../download">imagemagick.org</a> or a <a href="download.html">mirror</a> and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
 
 <p>Unpack the distribution it with this command:</p>
 
@@ -111,7 +111,7 @@
 
 <p>The configure script looks at your environment and decides what it can cobble together to get ImageMagick compiled and installed on your system.  This includes finding a compiler, where your compiler header files are located (e.g. stdlib.h), and if any delegate libraries are available for ImageMagick to use (e.g. JPEG, PNG, TIFF, etc.).  If you are willing to accept configure's default options, and build from within the source directory, you can simply type:</p>
 
-<pre><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-39</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span></pre>
+<pre><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-53</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span></pre>
 <p>Watch the configure script output to verify that it finds everything that
  you think it should.  Pay particular attention to the last lines of the script output.  For example, here is a recent report from our system:</p>
 
@@ -504,12 +504,12 @@
 
 <p>To verify the ImageMagick build configuration, type:</p>
 
-<pre class="highlight"><code>identify -list configure
+<pre class="highlight"><code>magick identify -list configure
 </code></pre>
 
 <p>To list which image formats are supported , type:</p>
 
-<pre class="highlight"><code>identify -list format
+<pre class="highlight"><code>magick identify -list format
 </code></pre>
 
 <p>For a more comprehensive test, you run the ImageMagick test suite by typing:</p>
@@ -555,7 +555,7 @@
 
 	  <p><a href="download.html">Download</a> the ImageMagick source distribution and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
 	  <p>Unpack and change into the top-level ImageMagick directory:</p>
-		<pre><span class="crtprompt">$ </span><span class='crtin'>tar xvzf ImageMagick-7.0.10-39.tar.gz</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-39</span></pre>	  <p>Configure ImageMagick:</p>
+		<pre><span class="crtprompt">$ </span><span class='crtin'>tar xvzf ImageMagick-7.0.10-53.tar.gz</span><span class='crtout'></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-53</span></pre>	  <p>Configure ImageMagick:</p>
 <pre class="highlight"><code>./configure --prefix=/opt --with-quantum-depth=16 \
   --disable-dependency-tracking --with-x=yes \
   --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
@@ -582,7 +582,7 @@
 
 <p>Although you can download and install delegate libraries yourself, many are already available in the <a href="http://gnuwin32.sourceforge.net/">GnuWin32</a> distribution.  Download and install whichever delegate libraries you require such as JPEG, PNG, TIFF, etc.  Make sure you specify the development headers when you install a package.  Next type,</p>
 
-<pre><span class="crtprompt">$ </span><span class='crtin'>tar jxvf ImageMagick-7.0.10-?.tar.bz2</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-39</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure --without-perl</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>sudo make install</span></pre>
+<pre><span class="crtprompt">$ </span><span class='crtin'>tar jxvf ImageMagick-7.0.10-?.tar.bz2</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10-53</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure --without-perl</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>sudo make install</span></pre>
 <h2><a class="anchor" id="problems"></a>Dealing with Unexpected Problems</h2>
 
 <p>Chances are the download, configure, build, and install of ImageMagick went flawlessly as it is intended, however, certain systems and environments may cause one or more steps to fail.  We discuss a few problems we've run across and how to take corrective action to ensure you have a working release of ImageMagick</p>
@@ -618,7 +618,7 @@
 
 <p>Now reconfigure, rebuild, and reinstall ImageMagick.  To verify JPEG is now properly supported within ImageMagick, use this command:</p>
 
-<pre class="highlight"><code>identify -list format
+<pre class="highlight"><code>magick identify -list format
 </code></pre>
 
 <p>You should see a mode of rw- associated with the JPEG tag.  This mode means the image can be read or written and can only support one image per image file.</p>
@@ -647,7 +647,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -655,3 +655,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 19:12 -->
\ No newline at end of file
diff --git a/www/advanced-windows-installation.html b/www/advanced-windows-installation.html
index d56c345..d722def 100644
--- a/www/advanced-windows-installation.html
+++ b/www/advanced-windows-installation.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Advanced Windows Source Installation</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -148,7 +148,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -156,4 +156,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:09 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/animate.html b/www/animate.html
index 10f0893..ad7e0d3 100644
--- a/www/animate.html
+++ b/www/animate.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Animate</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -565,7 +565,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -573,4 +573,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 20:59 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/api/Image++.html b/www/api/Image++.html
index 9ec4cd9..8e0e853 100644
--- a/www/api/Image++.html
+++ b/www/api/Image++.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Magick++, C++ API for ImageMagick: Image Class</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -3239,7 +3239,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/animate.html b/www/api/animate.html
index 68c8f4f..e2e2aa5 100644
--- a/www/api/animate.html
+++ b/www/api/animate.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Interactively Animate an Image Sequence</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -113,7 +113,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/annotate.html b/www/api/annotate.html
index 195b422..c8f8978 100644
--- a/www/api/annotate.html
+++ b/www/api/annotate.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Annotate an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -284,7 +284,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/attribute.html b/www/api/attribute.html
index 382bc27..f7ee19d 100644
--- a/www/api/attribute.html
+++ b/www/api/attribute.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Set Text Attributes</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -484,7 +484,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/blob.html b/www/api/blob.html
index 1c61780..0c45dc2 100644
--- a/www/api/blob.html
+++ b/www/api/blob.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Read or Write Binary Large OBjects</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -471,7 +471,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/cache-view.html b/www/api/cache-view.html
index 57fc1bf..efb56a1 100644
--- a/www/api/cache-view.html
+++ b/www/api/cache-view.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Cache Views</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -697,7 +697,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/cache.html b/www/api/cache.html
index 34a1c7d..768d7a0 100644
--- a/www/api/cache.html
+++ b/www/api/cache.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Get or Set Image Pixels</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -534,7 +534,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/channel.html b/www/api/channel.html
index 7c6c8b2..79421c3 100644
--- a/www/api/channel.html
+++ b/www/api/channel.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Get or Set Image Channels</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -298,7 +298,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/cipher.html b/www/api/cipher.html
index ce7fc90..3a1a463 100644
--- a/www/api/cipher.html
+++ b/www/api/cipher.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Convert to and from Cipher Pixels</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -346,7 +346,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/color.html b/www/api/color.html
index 4418f09..ce7c956 100644
--- a/www/api/color.html
+++ b/www/api/color.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Count the Colors in an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -251,7 +251,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/colormap.html b/www/api/colormap.html
index 5431ce4..5081ddf 100644
--- a/www/api/colormap.html
+++ b/www/api/colormap.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Colormap Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -177,7 +177,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/colorspace.html b/www/api/colorspace.html
index 1ffd3e9..b68d5b4 100644
--- a/www/api/colorspace.html
+++ b/www/api/colorspace.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Dealing with Image Colorspaces</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -263,7 +263,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/compare.html b/www/api/compare.html
index bd741ca..ef5fa8a 100644
--- a/www/api/compare.html
+++ b/www/api/compare.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Compare an Image to a Reconstructed Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -152,7 +152,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/composite.html b/www/api/composite.html
index 28b07dc..c7feeef 100644
--- a/www/api/composite.html
+++ b/www/api/composite.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Composite an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -152,7 +152,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/constitute.html b/www/api/constitute.html
index 5841e22..4e25bd1 100644
--- a/www/api/constitute.html
+++ b/www/api/constitute.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Constitute an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -341,7 +341,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/decorate.html b/www/api/decorate.html
index 8bf98ab..efe7567 100644
--- a/www/api/decorate.html
+++ b/www/api/decorate.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Decorate an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -219,7 +219,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/deprecate.html b/www/api/deprecate.html
index 0f6764a..c1c7739 100644
--- a/www/api/deprecate.html
+++ b/www/api/deprecate.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Deprecated Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -167,7 +167,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/display.html b/www/api/display.html
index c83877b..14f6bbf 100644
--- a/www/api/display.html
+++ b/www/api/display.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Interactively Display and Edit an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -113,7 +113,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/distort.html b/www/api/distort.html
index da0af31..5a99728 100644
--- a/www/api/distort.html
+++ b/www/api/distort.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Image Distortions</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -276,7 +276,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/draw.html b/www/api/draw.html
index 6222748..8b1178c 100644
--- a/www/api/draw.html
+++ b/www/api/draw.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Draw on an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -478,7 +478,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/drawing-wand.html b/www/api/drawing-wand.html
index 803595f..ad4c1b1 100644
--- a/www/api/drawing-wand.html
+++ b/www/api/drawing-wand.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Drawing Wand Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -3935,7 +3935,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/effect.html b/www/api/effect.html
index b2233db..8501627 100644
--- a/www/api/effect.html
+++ b/www/api/effect.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Add an Effect</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -90,7 +90,7 @@
   <main role="main" class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="effect.html#AdaptiveBlurImage">AdaptiveBlurImage</a> &#8226; <a href="effect.html#AdaptiveSharpenImage">AdaptiveSharpenImage</a> &#8226; <a href="effect.html#BlurImage">BlurImage</a> &#8226; <a href="effect.html#ConvolveImage">ConvolveImage</a> &#8226; <a href="effect.html#DespeckleImage">DespeckleImage</a> &#8226; <a href="effect.html#EdgeImage">EdgeImage</a> &#8226; <a href="effect.html#EmbossImage">EmbossImage</a> &#8226; <a href="effect.html#GaussianBlurImage">GaussianBlurImage</a> &#8226; <a href="effect.html#KuwaharaImage">KuwaharaImage</a> &#8226; <a href="effect.html#LocalContrastImage">LocalContrastImage</a> &#8226; <a href="effect.html#MotionBlurImage">MotionBlurImage</a> &#8226; <a href="effect.html#PreviewImage">PreviewImage</a> &#8226; <a href="effect.html#RotationalBlurImage">RotationalBlurImage</a> &#8226; <a href="effect.html#SelectiveBlurImage">SelectiveBlurImage</a> &#8226; <a href="effect.html#ShadeImage">ShadeImage</a> &#8226; <a href="effect.html#SharpenImage">SharpenImage</a> &#8226; <a href="effect.html#SpreadImage">SpreadImage</a> &#8226; <a href="effect.html#UnsharpMaskImage">UnsharpMaskImage</a></p>
+<p class="text-center"><a href="effect.html#AdaptiveBlurImage">AdaptiveBlurImage</a> &#8226; <a href="effect.html#AdaptiveSharpenImage">AdaptiveSharpenImage</a> &#8226; <a href="effect.html#BlurImage">BlurImage</a> &#8226; <a href="effect.html#BilateralBlurImage">BilateralBlurImage</a> &#8226; <a href="effect.html#ConvolveImage">ConvolveImage</a> &#8226; <a href="effect.html#DespeckleImage">DespeckleImage</a> &#8226; <a href="effect.html#EdgeImage">EdgeImage</a> &#8226; <a href="effect.html#EmbossImage">EmbossImage</a> &#8226; <a href="effect.html#GaussianBlurImage">GaussianBlurImage</a> &#8226; <a href="effect.html#KuwaharaImage">KuwaharaImage</a> &#8226; <a href="effect.html#LocalContrastImage">LocalContrastImage</a> &#8226; <a href="effect.html#MotionBlurImage">MotionBlurImage</a> &#8226; <a href="effect.html#PreviewImage">PreviewImage</a> &#8226; <a href="effect.html#RotationalBlurImage">RotationalBlurImage</a> &#8226; <a href="effect.html#SelectiveBlurImage">SelectiveBlurImage</a> &#8226; <a href="effect.html#ShadeImage">ShadeImage</a> &#8226; <a href="effect.html#SharpenImage">SharpenImage</a> &#8226; <a href="effect.html#SpreadImage">SpreadImage</a> &#8226; <a href="effect.html#UnsharpMaskImage">UnsharpMaskImage</a></p>
 
 <h2><a href="../../api/MagickCore/effect_8c.html" id="AdaptiveBlurImage">AdaptiveBlurImage</a></h2>
 
@@ -197,6 +197,50 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickCore/effect_8c.html" id="BilateralBlurImage">BilateralBlurImage</a></h2>
+
+<p>BilateralBlurImage() is a non-linear, edge-preserving, and noise-reducing smoothing filter for images.  It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels.  This weight is based on a Gaussian distribution.  The weights depend not only on Euclidean distance of pixels, but also on the radiometric differences (e.g., range differences, such as color intensity, depth distance, etc.). This preserves sharp edges.</p>
+
+<p>The format of the BilateralBlurImage method is:</p>
+
+<pre class="text">
+Image *BilateralBlurImage(const Image *image,const size_t width,
+  const size_t height,const double intensity_sigma,
+  const double spatial_sigma,ExceptionInfo *exception)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>image</dt>
+<dd>the image. </dd>
+
+<dd> </dd>
+<dt>width</dt>
+<dd>the width of the neighborhood in pixels. </dd>
+
+<dd> </dd>
+<dt>height</dt>
+<dd>the height of the neighborhood in pixels. </dd>
+
+<dd> </dd>
+<dt>intensity_sigma</dt>
+<dd>sigma in the intensity space. A larger value means that farther colors within the pixel neighborhood (see spatial_sigma) will be mixed together, resulting in larger areas of semi-equal color. </dd>
+
+<dd> </dd>
+<dt>spatial_sigma</dt>
+<dd>sigma in the coordinate space. A larger value means that farther pixels influence each other as long as their colors are close enough (see intensity_sigma ). When the neigborhood diameter is greater than zero, it specifies the neighborhood size regardless of spatial_sigma. Otherwise, the neigborhood diameter is proportional to spatial_sigma. </dd>
+
+<dd> </dd>
+<dt>exception</dt>
+<dd>return any errors or warnings in this structure. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickCore/effect_8c.html" id="ConvolveImage">ConvolveImage</a></h2>
 
 <p>ConvolveImage() applies a custom convolution kernel to the image.</p>
@@ -322,7 +366,7 @@
 </dl>
 <h2><a href="../../api/MagickCore/effect_8c.html" id="GaussianBlurImage">GaussianBlurImage</a></h2>
 
-<p>GaussianBlurImage() blurs an image.  We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma.  Use a radius of 0 and GaussianBlurImage() selects a suitable radius for you</p>
+<p>GaussianBlurImage() blurs an image.  We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma.  Use a radius of 0 and GaussianBlurImage() selects a suitable radius for you.</p>
 
 <p>The format of the GaussianBlurImage method is:</p>
 
@@ -746,7 +790,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/enhance.html b/www/api/enhance.html
index dcd7548..2404a0c 100644
--- a/www/api/enhance.html
+++ b/www/api/enhance.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Enhance an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -867,7 +867,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/exception.html b/www/api/exception.html
index f995dbc..5d1f280 100644
--- a/www/api/exception.html
+++ b/www/api/exception.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Dealing with Exceptions</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -503,7 +503,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/feature.html b/www/api/feature.html
index 677ba2b..701df31 100644
--- a/www/api/feature.html
+++ b/www/api/feature.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Image Features</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -266,7 +266,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/fourier.html b/www/api/fourier.html
index 3e8d34c..ad53373 100644
--- a/www/api/fourier.html
+++ b/www/api/fourier.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Fourier Transform</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -211,7 +211,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/fx.html b/www/api/fx.html
index 1d0d714..46c658f 100644
--- a/www/api/fx.html
+++ b/www/api/fx.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Add a Special Effect</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -144,7 +144,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/histogram.html b/www/api/histogram.html
index ccddb47..f2fe3e5 100644
--- a/www/api/histogram.html
+++ b/www/api/histogram.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Image Histograms</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -271,7 +271,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/image-view.html b/www/api/image-view.html
index 168508a..30135ac 100644
--- a/www/api/image-view.html
+++ b/www/api/image-view.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Image View Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -670,7 +670,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/image.html b/www/api/image.html
index 0e2a780..24204ed 100644
--- a/www/api/image.html
+++ b/www/api/image.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Image Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -1219,7 +1219,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/layer.html b/www/api/layer.html
index d679419..b46701a 100644
--- a/www/api/layer.html
+++ b/www/api/layer.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Dealing with Image Layers</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -432,7 +432,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/list.html b/www/api/list.html
index 7869377..078e984 100644
--- a/www/api/list.html
+++ b/www/api/list.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Working with Image Lists</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -772,7 +772,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/magick++-classes.html b/www/api/magick++-classes.html
index 7794267..d306701 100644
--- a/www/api/magick++-classes.html
+++ b/www/api/magick++-classes.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Magick++, C++ API: Classes</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -166,7 +166,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/magick-deprecate.html b/www/api/magick-deprecate.html
index b820cda..6d90b31 100644
--- a/www/api/magick-deprecate.html
+++ b/www/api/magick-deprecate.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Deprecated Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -113,7 +113,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/magick-image.html b/www/api/magick-image.html
index 4aec9ea..b6680b1 100644
--- a/www/api/magick-image.html
+++ b/www/api/magick-image.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Image Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -90,7 +90,7 @@
   <main role="main" class="container">
     <div class="magick-template">
 <div class="magick-header">
-<p class="text-center"><a href="magick-image.html#GetImageFromMagickWand">GetImageFromMagickWand</a> &#8226; <a href="magick-image.html#MagickAdaptiveBlurImage">MagickAdaptiveBlurImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveResizeImage">MagickAdaptiveResizeImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveSharpenImage">MagickAdaptiveSharpenImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveThresholdImage">MagickAdaptiveThresholdImage</a> &#8226; <a href="magick-image.html#MagickAddImage">MagickAddImage</a> &#8226; <a href="magick-image.html#MagickAddNoiseImage">MagickAddNoiseImage</a> &#8226; <a href="magick-image.html#MagickAffineTransformImage">MagickAffineTransformImage</a> &#8226; <a href="magick-image.html#MagickAnnotateImage">MagickAnnotateImage</a> &#8226; <a href="magick-image.html#MagickAnimateImages">MagickAnimateImages</a> &#8226; <a href="magick-image.html#MagickAppendImages">MagickAppendImages</a> &#8226; <a href="magick-image.html#MagickAutoGammaImage">MagickAutoGammaImage</a> &#8226; <a href="magick-image.html#MagickAutoLevelImage">MagickAutoLevelImage</a> &#8226; <a href="magick-image.html#MagickAutoOrientImage">MagickAutoOrientImage</a> &#8226; <a href="magick-image.html#MagickAutoThresholdImage">MagickAutoThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlackThresholdImage">MagickBlackThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlueShiftImage">MagickBlueShiftImage</a> &#8226; <a href="magick-image.html#MagickBlurImage">MagickBlurImage</a> &#8226; <a href="magick-image.html#MagickBorderImage">MagickBorderImage</a> &#8226; <a href="magick-image.html#Use MagickBrightnessContrastImage">Use MagickBrightnessContrastImage</a> &#8226; <a href="magick-image.html#MagickCannyEdgeImage">MagickCannyEdgeImage</a> &#8226; <a href="magick-image.html#MagickChannelFxImage">MagickChannelFxImage</a> &#8226; <a href="magick-image.html#MagickCharcoalImage">MagickCharcoalImage</a> &#8226; <a href="magick-image.html#MagickChopImage">MagickChopImage</a> &#8226; <a href="magick-image.html#MagickCLAHEImage">MagickCLAHEImage</a> &#8226; <a href="magick-image.html#MagickClampImage">MagickClampImage</a> &#8226; <a href="magick-image.html#MagickClipImage">MagickClipImage</a> &#8226; <a href="magick-image.html#MagickClipImagePath">MagickClipImagePath</a> &#8226; <a href="magick-image.html#MagickClutImage">MagickClutImage</a> &#8226; <a href="magick-image.html#MagickCoalesceImages">MagickCoalesceImages</a> &#8226; <a href="magick-image.html#MagickColorDecisionListImage">MagickColorDecisionListImage</a> &#8226; <a href="magick-image.html#MagickColorizeImage">MagickColorizeImage</a> &#8226; <a href="magick-image.html#MagickColorMatrixImage">MagickColorMatrixImage</a> &#8226; <a href="magick-image.html#MagickColorThresholdImage">MagickColorThresholdImage</a> &#8226; <a href="magick-image.html#MagickCombineImages">MagickCombineImages</a> &#8226; <a href="magick-image.html#MagickCommentImage">MagickCommentImage</a> &#8226; <a href="magick-image.html#MagickCompareImagesLayers">MagickCompareImagesLayers</a> &#8226; <a href="magick-image.html#MagickCompareImages">MagickCompareImages</a> &#8226; <a href="magick-image.html#MagickComplexImages">MagickComplexImages</a> &#8226; <a href="magick-image.html#MagickCompositeImage">MagickCompositeImage</a> &#8226; <a href="magick-image.html#MagickCompositeImageGravity">MagickCompositeImageGravity</a> &#8226; <a href="magick-image.html#MagickCompositeLayers">MagickCompositeLayers</a> &#8226; <a href="magick-image.html#MagickConnectedComponentsImage">MagickConnectedComponentsImage</a> &#8226; <a href="magick-image.html#MagickContrastImage">MagickContrastImage</a> &#8226; <a href="magick-image.html#MagickContrastStretchImage">MagickContrastStretchImage</a> &#8226; <a href="magick-image.html#MagickConvolveImage">MagickConvolveImage</a> &#8226; <a href="magick-image.html#MagickCropImage">MagickCropImage</a> &#8226; <a href="magick-image.html#MagickCycleColormapImage">MagickCycleColormapImage</a> &#8226; <a href="magick-image.html#MagickConstituteImage">MagickConstituteImage</a> &#8226; <a href="magick-image.html#MagickDecipherImage">MagickDecipherImage</a> &#8226; <a href="magick-image.html#MagickDeconstructImages">MagickDeconstructImages</a> &#8226; <a href="magick-image.html#MagickDeskewImage">MagickDeskewImage</a> &#8226; <a href="magick-image.html#MagickDespeckleImage">MagickDespeckleImage</a> &#8226; <a href="magick-image.html#MagickDestroyImage">MagickDestroyImage</a> &#8226; <a href="magick-image.html#MagickDisplayImage">MagickDisplayImage</a> &#8226; <a href="magick-image.html#MagickDisplayImages">MagickDisplayImages</a> &#8226; <a href="magick-image.html#MagickDistortImage">MagickDistortImage</a> &#8226; <a href="magick-image.html#MagickDrawImage">MagickDrawImage</a> &#8226; <a href="magick-image.html#MagickEdgeImage">MagickEdgeImage</a> &#8226; <a href="magick-image.html#MagickEmbossImage">MagickEmbossImage</a> &#8226; <a href="magick-image.html#MagickEncipherImage">MagickEncipherImage</a> &#8226; <a href="magick-image.html#MagickEnhanceImage">MagickEnhanceImage</a> &#8226; <a href="magick-image.html#MagickEqualizeImage">MagickEqualizeImage</a> &#8226; <a href="magick-image.html#MagickEvaluateImage">MagickEvaluateImage</a> &#8226; <a href="magick-image.html#MagickExportImagePixels">MagickExportImagePixels</a> &#8226; <a href="magick-image.html#MagickExtentImage">MagickExtentImage</a> &#8226; <a href="magick-image.html#MagickFlipImage">MagickFlipImage</a> &#8226; <a href="magick-image.html#MagickFloodfillPaintImage">MagickFloodfillPaintImage</a> &#8226; <a href="magick-image.html#MagickFlopImage">MagickFlopImage</a> &#8226; <a href="magick-image.html#MagickForwardFourierTransformImage">MagickForwardFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickFrameImage">MagickFrameImage</a> &#8226; <a href="magick-image.html#MagickFunctionImage">MagickFunctionImage</a> &#8226; <a href="magick-image.html#MagickFxImage">MagickFxImage</a> &#8226; <a href="magick-image.html#MagickGammaImage">MagickGammaImage</a> &#8226; <a href="magick-image.html#MagickGaussianBlurImage">MagickGaussianBlurImage</a> &#8226; <a href="magick-image.html#MagickGetImage">MagickGetImage</a> &#8226; <a href="magick-image.html#MagickGetImageAlphaChannel">MagickGetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickGetImageMask">MagickGetImageMask</a> &#8226; <a href="magick-image.html#MagickGetImageBackgroundColor">MagickGetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickGetImageBlob">MagickGetImageBlob</a> &#8226; <a href="magick-image.html#MagickGetImagesBlob">MagickGetImagesBlob</a> &#8226; <a href="magick-image.html#MagickGetImageBluePrimary">MagickGetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickGetImageBorderColor">MagickGetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickGetImageFeatures">MagickGetImageFeatures</a> &#8226; <a href="magick-image.html#MagickGetImageKurtosis">MagickGetImageKurtosis</a> &#8226; <a href="magick-image.html#MagickGetImageMean">MagickGetImageMean</a> &#8226; <a href="magick-image.html#MagickGetImageRange">MagickGetImageRange</a> &#8226; <a href="magick-image.html#MagickGetImageStatistics">MagickGetImageStatistics</a> &#8226; <a href="magick-image.html#MagickGetImageColormapColor">MagickGetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickGetImageColors">MagickGetImageColors</a> &#8226; <a href="magick-image.html#MagickGetImageColorspace">MagickGetImageColorspace</a> &#8226; <a href="magick-image.html#MagickGetImageCompose">MagickGetImageCompose</a> &#8226; <a href="magick-image.html#MagickGetImageCompression">MagickGetImageCompression</a> &#8226; <a href="magick-image.html#MagickGetImageCompressionQuality">MagickGetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickGetImageDelay">MagickGetImageDelay</a> &#8226; <a href="magick-image.html#MagickGetImageDepth">MagickGetImageDepth</a> &#8226; <a href="magick-image.html#MagickGetImageDispose">MagickGetImageDispose</a> &#8226; <a href="magick-image.html#MagickGetImageDistortion">MagickGetImageDistortion</a> &#8226; <a href="magick-image.html#MagickGetImageDistortions">MagickGetImageDistortions</a> &#8226; <a href="magick-image.html#MagickGetImageEndian">MagickGetImageEndian</a> &#8226; <a href="magick-image.html#MagickGetImageFilename">MagickGetImageFilename</a> &#8226; <a href="magick-image.html#MagickGetImageFormat">MagickGetImageFormat</a> &#8226; <a href="magick-image.html#MagickGetImageFuzz">MagickGetImageFuzz</a> &#8226; <a href="magick-image.html#MagickGetImageGamma">MagickGetImageGamma</a> &#8226; <a href="magick-image.html#MagickGetImageGravity">MagickGetImageGravity</a> &#8226; <a href="magick-image.html#MagickGetImageGreenPrimary">MagickGetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageHeight">MagickGetImageHeight</a> &#8226; <a href="magick-image.html#MagickGetImageHistogram">MagickGetImageHistogram</a> &#8226; <a href="magick-image.html#MagickGetImageInterlaceScheme">MagickGetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickGetImageInterpolateMethod">MagickGetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickGetImageIterations">MagickGetImageIterations</a> &#8226; <a href="magick-image.html#MagickGetImageLength">MagickGetImageLength</a> &#8226; <a href="magick-image.html#MagickGetImageMatteColor">MagickGetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickGetImageOrientation">MagickGetImageOrientation</a> &#8226; <a href="magick-image.html#MagickGetImagePage">MagickGetImagePage</a> &#8226; <a href="magick-image.html#MagickGetImagePixelColor">MagickGetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickGetImageRedPrimary">MagickGetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageRegion">MagickGetImageRegion</a> &#8226; <a href="magick-image.html#MagickGetImageRenderingIntent">MagickGetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickGetImageResolution">MagickGetImageResolution</a> &#8226; <a href="magick-image.html#MagickGetImageScene">MagickGetImageScene</a> &#8226; <a href="magick-image.html#MagickGetImageSignature">MagickGetImageSignature</a> &#8226; <a href="magick-image.html#MagickGetImageTicksPerSecond">MagickGetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickGetImageType">MagickGetImageType</a> &#8226; <a href="magick-image.html#MagickGetImageUnits">MagickGetImageUnits</a> &#8226; <a href="magick-image.html#MagickGetImageVirtualPixelMethod">MagickGetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickGetImageWhitePoint">MagickGetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickGetImageWidth">MagickGetImageWidth</a> &#8226; <a href="magick-image.html#MagickGetNumberImages">MagickGetNumberImages</a> &#8226; <a href="magick-image.html#MagickGetImageTotalInkDensity">MagickGetImageTotalInkDensity</a> &#8226; <a href="magick-image.html#MagickHaldClutImage">MagickHaldClutImage</a> &#8226; <a href="magick-image.html#MagickHasNextImage">MagickHasNextImage</a> &#8226; <a href="magick-image.html#MagickHasPreviousImage">MagickHasPreviousImage</a> &#8226; <a href="magick-image.html#Use MagickHoughLineImage">Use MagickHoughLineImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImage">MagickIdentifyImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImageType">MagickIdentifyImageType</a> &#8226; <a href="magick-image.html#MagickImplodeImage">MagickImplodeImage</a> &#8226; <a href="magick-image.html#MagickImportImagePixels">MagickImportImagePixels</a> &#8226; <a href="magick-image.html#MagickInterpolativeResizeImage">MagickInterpolativeResizeImage</a> &#8226; <a href="magick-image.html#MagickInverseFourierTransformImage">MagickInverseFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickKmeansImage">MagickKmeansImage</a> &#8226; <a href="magick-image.html#Use MagickKuwaharaImage">Use MagickKuwaharaImage</a> &#8226; <a href="magick-image.html#MagickLabelImage">MagickLabelImage</a> &#8226; <a href="magick-image.html#MagickLevelImage">MagickLevelImage</a> &#8226; <a href="magick-image.html#MagickLevelImageColors">MagickLevelImageColors</a> &#8226; <a href="magick-image.html#MagickLevelizeImage">MagickLevelizeImage</a> &#8226; <a href="magick-image.html#MagickLinearStretchImage">MagickLinearStretchImage</a> &#8226; <a href="magick-image.html#MagickLiquidRescaleImage">MagickLiquidRescaleImage</a> &#8226; <a href="magick-image.html#MagickLocalContrastImage">MagickLocalContrastImage</a> &#8226; <a href="magick-image.html#MagickMagnifyImage">MagickMagnifyImage</a> &#8226; <a href="magick-image.html#MagickMeanShiftImage">MagickMeanShiftImage</a> &#8226; <a href="magick-image.html#MagickMergeImageLayers">MagickMergeImageLayers</a> &#8226; <a href="magick-image.html#MagickMinifyImage">MagickMinifyImage</a> &#8226; <a href="magick-image.html#MagickModulateImage">MagickModulateImage</a> &#8226; <a href="magick-image.html#MagickMontageImage">MagickMontageImage</a> &#8226; <a href="magick-image.html#MagickMorphImages">MagickMorphImages</a> &#8226; <a href="magick-image.html#MagickMorphologyImage">MagickMorphologyImage</a> &#8226; <a href="magick-image.html#MagickMotionBlurImage">MagickMotionBlurImage</a> &#8226; <a href="magick-image.html#MagickNegateImage">MagickNegateImage</a> &#8226; <a href="magick-image.html#MagickNewImage">MagickNewImage</a> &#8226; <a href="magick-image.html#MagickNextImage">MagickNextImage</a> &#8226; <a href="magick-image.html#MagickNormalizeImage">MagickNormalizeImage</a> &#8226; <a href="magick-image.html#MagickOilPaintImage">MagickOilPaintImage</a> &#8226; <a href="magick-image.html#MagickOpaquePaintImage">MagickOpaquePaintImage</a> &#8226; <a href="magick-image.html#MagickOptimizeImageLayers">MagickOptimizeImageLayers</a> &#8226; <a href="magick-image.html#MagickOptimizeImageTransparency">MagickOptimizeImageTransparency</a> &#8226; <a href="magick-image.html#MagickOrderedDitherImage">MagickOrderedDitherImage</a> &#8226; <a href="magick-image.html#MagickPingImage">MagickPingImage</a> &#8226; <a href="magick-image.html#MagickPingImageBlob">MagickPingImageBlob</a> &#8226; <a href="magick-image.html#MagickPingImageFile">MagickPingImageFile</a> &#8226; <a href="magick-image.html#MagickPolaroidImage">MagickPolaroidImage</a> &#8226; <a href="magick-image.html#MagickPolynomialImage">MagickPolynomialImage</a> &#8226; <a href="magick-image.html#MagickPosterizeImage">MagickPosterizeImage</a> &#8226; <a href="magick-image.html#MagickPreviewImages">MagickPreviewImages</a> &#8226; <a href="magick-image.html#MagickPreviousImage">MagickPreviousImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImage">MagickQuantizeImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImages">MagickQuantizeImages</a> &#8226; <a href="magick-image.html#MagickRangeThresholdImage">MagickRangeThresholdImage</a> &#8226; <a href="magick-image.html#MagickRotationalBlurImage">MagickRotationalBlurImage</a> &#8226; <a href="magick-image.html#MagickRaiseImage">MagickRaiseImage</a> &#8226; <a href="magick-image.html#MagickRandomThresholdImage">MagickRandomThresholdImage</a> &#8226; <a href="magick-image.html#MagickReadImage">MagickReadImage</a> &#8226; <a href="magick-image.html#MagickReadImageBlob">MagickReadImageBlob</a> &#8226; <a href="magick-image.html#MagickReadImageFile">MagickReadImageFile</a> &#8226; <a href="magick-image.html#MagickRemapImage">MagickRemapImage</a> &#8226; <a href="magick-image.html#MagickRemoveImage">MagickRemoveImage</a> &#8226; <a href="magick-image.html#MagickResampleImage">MagickResampleImage</a> &#8226; <a href="magick-image.html#MagickResetImagePage">MagickResetImagePage</a> &#8226; <a href="magick-image.html#MagickResizeImage">MagickResizeImage</a> &#8226; <a href="magick-image.html#MagickRollImage">MagickRollImage</a> &#8226; <a href="magick-image.html#MagickRotateImage">MagickRotateImage</a> &#8226; <a href="magick-image.html#MagickSampleImage">MagickSampleImage</a> &#8226; <a href="magick-image.html#MagickScaleImage">MagickScaleImage</a> &#8226; <a href="magick-image.html#MagickSegmentImage">MagickSegmentImage</a> &#8226; <a href="magick-image.html#MagickSelectiveBlurImage">MagickSelectiveBlurImage</a> &#8226; <a href="magick-image.html#MagickSeparateImage">MagickSeparateImage</a> &#8226; <a href="magick-image.html#MagickSepiaToneImage">MagickSepiaToneImage</a> &#8226; <a href="magick-image.html#MagickSetImage">MagickSetImage</a> &#8226; <a href="magick-image.html#MagickSetImageAlphaChannel">MagickSetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickSetImageBackgroundColor">MagickSetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickSetImageBluePrimary">MagickSetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickSetImageBorderColor">MagickSetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickSetImageChannelMask">MagickSetImageChannelMask</a> &#8226; <a href="magick-image.html#MagickSetImageMask">MagickSetImageMask</a> &#8226; <a href="magick-image.html#MagickSetImageColor">MagickSetImageColor</a> &#8226; <a href="magick-image.html#MagickSetImageColormapColor">MagickSetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickSetImageColorspace">MagickSetImageColorspace</a> &#8226; <a href="magick-image.html#MagickSetImageCompose">MagickSetImageCompose</a> &#8226; <a href="magick-image.html#MagickSetImageCompression">MagickSetImageCompression</a> &#8226; <a href="magick-image.html#MagickSetImageCompressionQuality">MagickSetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickSetImageDelay">MagickSetImageDelay</a> &#8226; <a href="magick-image.html#MagickSetImageDepth">MagickSetImageDepth</a> &#8226; <a href="magick-image.html#MagickSetImageDispose">MagickSetImageDispose</a> &#8226; <a href="magick-image.html#MagickSetImageEndian">MagickSetImageEndian</a> &#8226; <a href="magick-image.html#MagickSetImageExtent">MagickSetImageExtent</a> &#8226; <a href="magick-image.html#MagickSetImageFilename">MagickSetImageFilename</a> &#8226; <a href="magick-image.html#MagickSetImageFormat">MagickSetImageFormat</a> &#8226; <a href="magick-image.html#MagickSetImageFuzz">MagickSetImageFuzz</a> &#8226; <a href="magick-image.html#MagickSetImageGamma">MagickSetImageGamma</a> &#8226; <a href="magick-image.html#MagickSetImageGravity">MagickSetImageGravity</a> &#8226; <a href="magick-image.html#MagickSetImageGreenPrimary">MagickSetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageInterlaceScheme">MagickSetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickSetImageInterpolateMethod">MagickSetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickSetImageIterations">MagickSetImageIterations</a> &#8226; <a href="magick-image.html#MagickSetImageMatte">MagickSetImageMatte</a> &#8226; <a href="magick-image.html#MagickSetImageMatteColor">MagickSetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickSetImageAlpha">MagickSetImageAlpha</a> &#8226; <a href="magick-image.html#MagickSetImageOrientation">MagickSetImageOrientation</a> &#8226; <a href="magick-image.html#MagickSetImagePage">MagickSetImagePage</a> &#8226; <a href="magick-image.html#MagickSetImagePixelColor">MagickSetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickSetImageProgressMonitor">MagickSetImageProgressMonitor</a> &#8226; <a href="magick-image.html#MagickSetImageRedPrimary">MagickSetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageRenderingIntent">MagickSetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickSetImageResolution">MagickSetImageResolution</a> &#8226; <a href="magick-image.html#MagickSetImageScene">MagickSetImageScene</a> &#8226; <a href="magick-image.html#MagickSetImageTicksPerSecond">MagickSetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickSetImageType">MagickSetImageType</a> &#8226; <a href="magick-image.html#MagickSetImageUnits">MagickSetImageUnits</a> &#8226; <a href="magick-image.html#MagickSetImageVirtualPixelMethod">MagickSetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickSetImageWhitePoint">MagickSetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickShadeImage">MagickShadeImage</a> &#8226; <a href="magick-image.html#MagickShadowImage">MagickShadowImage</a> &#8226; <a href="magick-image.html#MagickSharpenImage">MagickSharpenImage</a> &#8226; <a href="magick-image.html#MagickShaveImage">MagickShaveImage</a> &#8226; <a href="magick-image.html#MagickShearImage">MagickShearImage</a> &#8226; <a href="magick-image.html#MagickSigmoidalContrastImage">MagickSigmoidalContrastImage</a> &#8226; <a href="magick-image.html#MagickSimilarityImage">MagickSimilarityImage</a> &#8226; <a href="magick-image.html#MagickSketchImage">MagickSketchImage</a> &#8226; <a href="magick-image.html#MagickSmushImages">MagickSmushImages</a> &#8226; <a href="magick-image.html#MagickSolarizeImage">MagickSolarizeImage</a> &#8226; <a href="magick-image.html#MagickSparseColorImage">MagickSparseColorImage</a> &#8226; <a href="magick-image.html#MagickSpliceImage">MagickSpliceImage</a> &#8226; <a href="magick-image.html#MagickSpreadImage">MagickSpreadImage</a> &#8226; <a href="magick-image.html#MagickStatisticImage">MagickStatisticImage</a> &#8226; <a href="magick-image.html#MagickSteganoImage">MagickSteganoImage</a> &#8226; <a href="magick-image.html#MagickStereoImage">MagickStereoImage</a> &#8226; <a href="magick-image.html#MagickStripImage">MagickStripImage</a> &#8226; <a href="magick-image.html#MagickSwirlImage">MagickSwirlImage</a> &#8226; <a href="magick-image.html#MagickTextureImage">MagickTextureImage</a> &#8226; <a href="magick-image.html#MagickThresholdImage">MagickThresholdImage</a> &#8226; <a href="magick-image.html#MagickThumbnailImage">MagickThumbnailImage</a> &#8226; <a href="magick-image.html#MagickTintImage">MagickTintImage</a> &#8226; <a href="magick-image.html#MagickTransformImageColorspace">MagickTransformImageColorspace</a> &#8226; <a href="magick-image.html#MagickTransparentPaintImage">MagickTransparentPaintImage</a> &#8226; <a href="magick-image.html#MagickTransposeImage">MagickTransposeImage</a> &#8226; <a href="magick-image.html#MagickTransverseImage">MagickTransverseImage</a> &#8226; <a href="magick-image.html#MagickTrimImage">MagickTrimImage</a> &#8226; <a href="magick-image.html#MagickUniqueImageColors">MagickUniqueImageColors</a> &#8226; <a href="magick-image.html#MagickUnsharpMaskImage">MagickUnsharpMaskImage</a> &#8226; <a href="magick-image.html#MagickVignetteImage">MagickVignetteImage</a> &#8226; <a href="magick-image.html#MagickWaveImage">MagickWaveImage</a> &#8226; <a href="magick-image.html#MagickWaveletDenoiseImage">MagickWaveletDenoiseImage</a> &#8226; <a href="magick-image.html#MagickWhiteBalanceImage">MagickWhiteBalanceImage</a> &#8226; <a href="magick-image.html#MagickWhiteThresholdImage">MagickWhiteThresholdImage</a> &#8226; <a href="magick-image.html#MagickWriteImage">MagickWriteImage</a> &#8226; <a href="magick-image.html#MagickWriteImageFile">MagickWriteImageFile</a> &#8226; <a href="magick-image.html#MagickWriteImages">MagickWriteImages</a> &#8226; <a href="magick-image.html#MagickWriteImagesFile">MagickWriteImagesFile</a></p>
+<p class="text-center"><a href="magick-image.html#GetImageFromMagickWand">GetImageFromMagickWand</a> &#8226; <a href="magick-image.html#MagickAdaptiveBlurImage">MagickAdaptiveBlurImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveResizeImage">MagickAdaptiveResizeImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveSharpenImage">MagickAdaptiveSharpenImage</a> &#8226; <a href="magick-image.html#MagickAdaptiveThresholdImage">MagickAdaptiveThresholdImage</a> &#8226; <a href="magick-image.html#MagickAddImage">MagickAddImage</a> &#8226; <a href="magick-image.html#MagickAddNoiseImage">MagickAddNoiseImage</a> &#8226; <a href="magick-image.html#MagickAffineTransformImage">MagickAffineTransformImage</a> &#8226; <a href="magick-image.html#MagickAnnotateImage">MagickAnnotateImage</a> &#8226; <a href="magick-image.html#MagickAnimateImages">MagickAnimateImages</a> &#8226; <a href="magick-image.html#MagickAppendImages">MagickAppendImages</a> &#8226; <a href="magick-image.html#MagickAutoGammaImage">MagickAutoGammaImage</a> &#8226; <a href="magick-image.html#MagickAutoLevelImage">MagickAutoLevelImage</a> &#8226; <a href="magick-image.html#MagickAutoOrientImage">MagickAutoOrientImage</a> &#8226; <a href="magick-image.html#MagickAutoThresholdImage">MagickAutoThresholdImage</a> &#8226; <a href="magick-image.html#MagickBilateralBlurImage">MagickBilateralBlurImage</a> &#8226; <a href="magick-image.html#MagickBlackThresholdImage">MagickBlackThresholdImage</a> &#8226; <a href="magick-image.html#MagickBlueShiftImage">MagickBlueShiftImage</a> &#8226; <a href="magick-image.html#MagickBlurImage">MagickBlurImage</a> &#8226; <a href="magick-image.html#MagickBorderImage">MagickBorderImage</a> &#8226; <a href="magick-image.html#Use MagickBrightnessContrastImage">Use MagickBrightnessContrastImage</a> &#8226; <a href="magick-image.html#MagickCannyEdgeImage">MagickCannyEdgeImage</a> &#8226; <a href="magick-image.html#MagickChannelFxImage">MagickChannelFxImage</a> &#8226; <a href="magick-image.html#MagickCharcoalImage">MagickCharcoalImage</a> &#8226; <a href="magick-image.html#MagickChopImage">MagickChopImage</a> &#8226; <a href="magick-image.html#MagickCLAHEImage">MagickCLAHEImage</a> &#8226; <a href="magick-image.html#MagickClampImage">MagickClampImage</a> &#8226; <a href="magick-image.html#MagickClipImage">MagickClipImage</a> &#8226; <a href="magick-image.html#MagickClipImagePath">MagickClipImagePath</a> &#8226; <a href="magick-image.html#MagickClutImage">MagickClutImage</a> &#8226; <a href="magick-image.html#MagickCoalesceImages">MagickCoalesceImages</a> &#8226; <a href="magick-image.html#MagickColorDecisionListImage">MagickColorDecisionListImage</a> &#8226; <a href="magick-image.html#MagickColorizeImage">MagickColorizeImage</a> &#8226; <a href="magick-image.html#MagickColorMatrixImage">MagickColorMatrixImage</a> &#8226; <a href="magick-image.html#MagickColorThresholdImage">MagickColorThresholdImage</a> &#8226; <a href="magick-image.html#MagickCombineImages">MagickCombineImages</a> &#8226; <a href="magick-image.html#MagickCommentImage">MagickCommentImage</a> &#8226; <a href="magick-image.html#MagickCompareImagesLayers">MagickCompareImagesLayers</a> &#8226; <a href="magick-image.html#MagickCompareImages">MagickCompareImages</a> &#8226; <a href="magick-image.html#MagickComplexImages">MagickComplexImages</a> &#8226; <a href="magick-image.html#MagickCompositeImage">MagickCompositeImage</a> &#8226; <a href="magick-image.html#MagickCompositeImageGravity">MagickCompositeImageGravity</a> &#8226; <a href="magick-image.html#MagickCompositeLayers">MagickCompositeLayers</a> &#8226; <a href="magick-image.html#MagickConnectedComponentsImage">MagickConnectedComponentsImage</a> &#8226; <a href="magick-image.html#MagickContrastImage">MagickContrastImage</a> &#8226; <a href="magick-image.html#MagickContrastStretchImage">MagickContrastStretchImage</a> &#8226; <a href="magick-image.html#MagickConvolveImage">MagickConvolveImage</a> &#8226; <a href="magick-image.html#MagickCropImage">MagickCropImage</a> &#8226; <a href="magick-image.html#MagickCycleColormapImage">MagickCycleColormapImage</a> &#8226; <a href="magick-image.html#MagickConstituteImage">MagickConstituteImage</a> &#8226; <a href="magick-image.html#MagickDecipherImage">MagickDecipherImage</a> &#8226; <a href="magick-image.html#MagickDeconstructImages">MagickDeconstructImages</a> &#8226; <a href="magick-image.html#MagickDeskewImage">MagickDeskewImage</a> &#8226; <a href="magick-image.html#MagickDespeckleImage">MagickDespeckleImage</a> &#8226; <a href="magick-image.html#MagickDestroyImage">MagickDestroyImage</a> &#8226; <a href="magick-image.html#MagickDisplayImage">MagickDisplayImage</a> &#8226; <a href="magick-image.html#MagickDisplayImages">MagickDisplayImages</a> &#8226; <a href="magick-image.html#MagickDistortImage">MagickDistortImage</a> &#8226; <a href="magick-image.html#MagickDrawImage">MagickDrawImage</a> &#8226; <a href="magick-image.html#MagickEdgeImage">MagickEdgeImage</a> &#8226; <a href="magick-image.html#MagickEmbossImage">MagickEmbossImage</a> &#8226; <a href="magick-image.html#MagickEncipherImage">MagickEncipherImage</a> &#8226; <a href="magick-image.html#MagickEnhanceImage">MagickEnhanceImage</a> &#8226; <a href="magick-image.html#MagickEqualizeImage">MagickEqualizeImage</a> &#8226; <a href="magick-image.html#MagickEvaluateImage">MagickEvaluateImage</a> &#8226; <a href="magick-image.html#MagickExportImagePixels">MagickExportImagePixels</a> &#8226; <a href="magick-image.html#MagickExtentImage">MagickExtentImage</a> &#8226; <a href="magick-image.html#MagickFlipImage">MagickFlipImage</a> &#8226; <a href="magick-image.html#MagickFloodfillPaintImage">MagickFloodfillPaintImage</a> &#8226; <a href="magick-image.html#MagickFlopImage">MagickFlopImage</a> &#8226; <a href="magick-image.html#MagickForwardFourierTransformImage">MagickForwardFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickFrameImage">MagickFrameImage</a> &#8226; <a href="magick-image.html#MagickFunctionImage">MagickFunctionImage</a> &#8226; <a href="magick-image.html#MagickFxImage">MagickFxImage</a> &#8226; <a href="magick-image.html#MagickGammaImage">MagickGammaImage</a> &#8226; <a href="magick-image.html#MagickGaussianBlurImage">MagickGaussianBlurImage</a> &#8226; <a href="magick-image.html#MagickGetImage">MagickGetImage</a> &#8226; <a href="magick-image.html#MagickGetImageAlphaChannel">MagickGetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickGetImageMask">MagickGetImageMask</a> &#8226; <a href="magick-image.html#MagickGetImageBackgroundColor">MagickGetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickGetImageBlob">MagickGetImageBlob</a> &#8226; <a href="magick-image.html#MagickGetImagesBlob">MagickGetImagesBlob</a> &#8226; <a href="magick-image.html#MagickGetImageBluePrimary">MagickGetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickGetImageBorderColor">MagickGetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickGetImageFeatures">MagickGetImageFeatures</a> &#8226; <a href="magick-image.html#MagickGetImageKurtosis">MagickGetImageKurtosis</a> &#8226; <a href="magick-image.html#MagickGetImageMean">MagickGetImageMean</a> &#8226; <a href="magick-image.html#MagickGetImageRange">MagickGetImageRange</a> &#8226; <a href="magick-image.html#MagickGetImageStatistics">MagickGetImageStatistics</a> &#8226; <a href="magick-image.html#MagickGetImageColormapColor">MagickGetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickGetImageColors">MagickGetImageColors</a> &#8226; <a href="magick-image.html#MagickGetImageColorspace">MagickGetImageColorspace</a> &#8226; <a href="magick-image.html#MagickGetImageCompose">MagickGetImageCompose</a> &#8226; <a href="magick-image.html#MagickGetImageCompression">MagickGetImageCompression</a> &#8226; <a href="magick-image.html#MagickGetImageCompressionQuality">MagickGetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickGetImageDelay">MagickGetImageDelay</a> &#8226; <a href="magick-image.html#MagickGetImageDepth">MagickGetImageDepth</a> &#8226; <a href="magick-image.html#MagickGetImageDispose">MagickGetImageDispose</a> &#8226; <a href="magick-image.html#MagickGetImageDistortion">MagickGetImageDistortion</a> &#8226; <a href="magick-image.html#MagickGetImageDistortions">MagickGetImageDistortions</a> &#8226; <a href="magick-image.html#MagickGetImageEndian">MagickGetImageEndian</a> &#8226; <a href="magick-image.html#MagickGetImageFilename">MagickGetImageFilename</a> &#8226; <a href="magick-image.html#MagickGetImageFormat">MagickGetImageFormat</a> &#8226; <a href="magick-image.html#MagickGetImageFuzz">MagickGetImageFuzz</a> &#8226; <a href="magick-image.html#MagickGetImageGamma">MagickGetImageGamma</a> &#8226; <a href="magick-image.html#MagickGetImageGravity">MagickGetImageGravity</a> &#8226; <a href="magick-image.html#MagickGetImageGreenPrimary">MagickGetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageHeight">MagickGetImageHeight</a> &#8226; <a href="magick-image.html#MagickGetImageHistogram">MagickGetImageHistogram</a> &#8226; <a href="magick-image.html#MagickGetImageInterlaceScheme">MagickGetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickGetImageInterpolateMethod">MagickGetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickGetImageIterations">MagickGetImageIterations</a> &#8226; <a href="magick-image.html#MagickGetImageLength">MagickGetImageLength</a> &#8226; <a href="magick-image.html#MagickGetImageMatteColor">MagickGetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickGetImageOrientation">MagickGetImageOrientation</a> &#8226; <a href="magick-image.html#MagickGetImagePage">MagickGetImagePage</a> &#8226; <a href="magick-image.html#MagickGetImagePixelColor">MagickGetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickGetImageRedPrimary">MagickGetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickGetImageRegion">MagickGetImageRegion</a> &#8226; <a href="magick-image.html#MagickGetImageRenderingIntent">MagickGetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickGetImageResolution">MagickGetImageResolution</a> &#8226; <a href="magick-image.html#MagickGetImageScene">MagickGetImageScene</a> &#8226; <a href="magick-image.html#MagickGetImageSignature">MagickGetImageSignature</a> &#8226; <a href="magick-image.html#MagickGetImageTicksPerSecond">MagickGetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickGetImageType">MagickGetImageType</a> &#8226; <a href="magick-image.html#MagickGetImageUnits">MagickGetImageUnits</a> &#8226; <a href="magick-image.html#MagickGetImageVirtualPixelMethod">MagickGetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickGetImageWhitePoint">MagickGetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickGetImageWidth">MagickGetImageWidth</a> &#8226; <a href="magick-image.html#MagickGetNumberImages">MagickGetNumberImages</a> &#8226; <a href="magick-image.html#MagickGetImageTotalInkDensity">MagickGetImageTotalInkDensity</a> &#8226; <a href="magick-image.html#MagickHaldClutImage">MagickHaldClutImage</a> &#8226; <a href="magick-image.html#MagickHasNextImage">MagickHasNextImage</a> &#8226; <a href="magick-image.html#MagickHasPreviousImage">MagickHasPreviousImage</a> &#8226; <a href="magick-image.html#Use MagickHoughLineImage">Use MagickHoughLineImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImage">MagickIdentifyImage</a> &#8226; <a href="magick-image.html#MagickIdentifyImageType">MagickIdentifyImageType</a> &#8226; <a href="magick-image.html#MagickImplodeImage">MagickImplodeImage</a> &#8226; <a href="magick-image.html#MagickImportImagePixels">MagickImportImagePixels</a> &#8226; <a href="magick-image.html#MagickInterpolativeResizeImage">MagickInterpolativeResizeImage</a> &#8226; <a href="magick-image.html#MagickInverseFourierTransformImage">MagickInverseFourierTransformImage</a> &#8226; <a href="magick-image.html#MagickKmeansImage">MagickKmeansImage</a> &#8226; <a href="magick-image.html#Use MagickKuwaharaImage">Use MagickKuwaharaImage</a> &#8226; <a href="magick-image.html#MagickLabelImage">MagickLabelImage</a> &#8226; <a href="magick-image.html#MagickLevelImage">MagickLevelImage</a> &#8226; <a href="magick-image.html#MagickLevelImageColors">MagickLevelImageColors</a> &#8226; <a href="magick-image.html#MagickLevelizeImage">MagickLevelizeImage</a> &#8226; <a href="magick-image.html#MagickLinearStretchImage">MagickLinearStretchImage</a> &#8226; <a href="magick-image.html#MagickLiquidRescaleImage">MagickLiquidRescaleImage</a> &#8226; <a href="magick-image.html#MagickLocalContrastImage">MagickLocalContrastImage</a> &#8226; <a href="magick-image.html#MagickMagnifyImage">MagickMagnifyImage</a> &#8226; <a href="magick-image.html#MagickMeanShiftImage">MagickMeanShiftImage</a> &#8226; <a href="magick-image.html#MagickMergeImageLayers">MagickMergeImageLayers</a> &#8226; <a href="magick-image.html#MagickMinifyImage">MagickMinifyImage</a> &#8226; <a href="magick-image.html#MagickModulateImage">MagickModulateImage</a> &#8226; <a href="magick-image.html#MagickMontageImage">MagickMontageImage</a> &#8226; <a href="magick-image.html#MagickMorphImages">MagickMorphImages</a> &#8226; <a href="magick-image.html#MagickMorphologyImage">MagickMorphologyImage</a> &#8226; <a href="magick-image.html#MagickMotionBlurImage">MagickMotionBlurImage</a> &#8226; <a href="magick-image.html#MagickNegateImage">MagickNegateImage</a> &#8226; <a href="magick-image.html#MagickNewImage">MagickNewImage</a> &#8226; <a href="magick-image.html#MagickNextImage">MagickNextImage</a> &#8226; <a href="magick-image.html#MagickNormalizeImage">MagickNormalizeImage</a> &#8226; <a href="magick-image.html#MagickOilPaintImage">MagickOilPaintImage</a> &#8226; <a href="magick-image.html#MagickOpaquePaintImage">MagickOpaquePaintImage</a> &#8226; <a href="magick-image.html#MagickOptimizeImageLayers">MagickOptimizeImageLayers</a> &#8226; <a href="magick-image.html#MagickOptimizeImageTransparency">MagickOptimizeImageTransparency</a> &#8226; <a href="magick-image.html#MagickOrderedDitherImage">MagickOrderedDitherImage</a> &#8226; <a href="magick-image.html#MagickPingImage">MagickPingImage</a> &#8226; <a href="magick-image.html#MagickPingImageBlob">MagickPingImageBlob</a> &#8226; <a href="magick-image.html#MagickPingImageFile">MagickPingImageFile</a> &#8226; <a href="magick-image.html#MagickPolaroidImage">MagickPolaroidImage</a> &#8226; <a href="magick-image.html#MagickPolynomialImage">MagickPolynomialImage</a> &#8226; <a href="magick-image.html#MagickPosterizeImage">MagickPosterizeImage</a> &#8226; <a href="magick-image.html#MagickPreviewImages">MagickPreviewImages</a> &#8226; <a href="magick-image.html#MagickPreviousImage">MagickPreviousImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImage">MagickQuantizeImage</a> &#8226; <a href="magick-image.html#MagickQuantizeImages">MagickQuantizeImages</a> &#8226; <a href="magick-image.html#MagickRangeThresholdImage">MagickRangeThresholdImage</a> &#8226; <a href="magick-image.html#MagickRotationalBlurImage">MagickRotationalBlurImage</a> &#8226; <a href="magick-image.html#MagickRaiseImage">MagickRaiseImage</a> &#8226; <a href="magick-image.html#MagickRandomThresholdImage">MagickRandomThresholdImage</a> &#8226; <a href="magick-image.html#MagickReadImage">MagickReadImage</a> &#8226; <a href="magick-image.html#MagickReadImageBlob">MagickReadImageBlob</a> &#8226; <a href="magick-image.html#MagickReadImageFile">MagickReadImageFile</a> &#8226; <a href="magick-image.html#MagickRemapImage">MagickRemapImage</a> &#8226; <a href="magick-image.html#MagickRemoveImage">MagickRemoveImage</a> &#8226; <a href="magick-image.html#MagickResampleImage">MagickResampleImage</a> &#8226; <a href="magick-image.html#MagickResetImagePage">MagickResetImagePage</a> &#8226; <a href="magick-image.html#MagickResizeImage">MagickResizeImage</a> &#8226; <a href="magick-image.html#MagickRollImage">MagickRollImage</a> &#8226; <a href="magick-image.html#MagickRotateImage">MagickRotateImage</a> &#8226; <a href="magick-image.html#MagickSampleImage">MagickSampleImage</a> &#8226; <a href="magick-image.html#MagickScaleImage">MagickScaleImage</a> &#8226; <a href="magick-image.html#MagickSegmentImage">MagickSegmentImage</a> &#8226; <a href="magick-image.html#MagickSelectiveBlurImage">MagickSelectiveBlurImage</a> &#8226; <a href="magick-image.html#MagickSeparateImage">MagickSeparateImage</a> &#8226; <a href="magick-image.html#MagickSepiaToneImage">MagickSepiaToneImage</a> &#8226; <a href="magick-image.html#MagickSetImage">MagickSetImage</a> &#8226; <a href="magick-image.html#MagickSetImageAlphaChannel">MagickSetImageAlphaChannel</a> &#8226; <a href="magick-image.html#MagickSetImageBackgroundColor">MagickSetImageBackgroundColor</a> &#8226; <a href="magick-image.html#MagickSetImageBluePrimary">MagickSetImageBluePrimary</a> &#8226; <a href="magick-image.html#MagickSetImageBorderColor">MagickSetImageBorderColor</a> &#8226; <a href="magick-image.html#MagickSetImageChannelMask">MagickSetImageChannelMask</a> &#8226; <a href="magick-image.html#MagickSetImageMask">MagickSetImageMask</a> &#8226; <a href="magick-image.html#MagickSetImageColor">MagickSetImageColor</a> &#8226; <a href="magick-image.html#MagickSetImageColormapColor">MagickSetImageColormapColor</a> &#8226; <a href="magick-image.html#MagickSetImageColorspace">MagickSetImageColorspace</a> &#8226; <a href="magick-image.html#MagickSetImageCompose">MagickSetImageCompose</a> &#8226; <a href="magick-image.html#MagickSetImageCompression">MagickSetImageCompression</a> &#8226; <a href="magick-image.html#MagickSetImageCompressionQuality">MagickSetImageCompressionQuality</a> &#8226; <a href="magick-image.html#MagickSetImageDelay">MagickSetImageDelay</a> &#8226; <a href="magick-image.html#MagickSetImageDepth">MagickSetImageDepth</a> &#8226; <a href="magick-image.html#MagickSetImageDispose">MagickSetImageDispose</a> &#8226; <a href="magick-image.html#MagickSetImageEndian">MagickSetImageEndian</a> &#8226; <a href="magick-image.html#MagickSetImageExtent">MagickSetImageExtent</a> &#8226; <a href="magick-image.html#MagickSetImageFilename">MagickSetImageFilename</a> &#8226; <a href="magick-image.html#MagickSetImageFormat">MagickSetImageFormat</a> &#8226; <a href="magick-image.html#MagickSetImageFuzz">MagickSetImageFuzz</a> &#8226; <a href="magick-image.html#MagickSetImageGamma">MagickSetImageGamma</a> &#8226; <a href="magick-image.html#MagickSetImageGravity">MagickSetImageGravity</a> &#8226; <a href="magick-image.html#MagickSetImageGreenPrimary">MagickSetImageGreenPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageInterlaceScheme">MagickSetImageInterlaceScheme</a> &#8226; <a href="magick-image.html#MagickSetImageInterpolateMethod">MagickSetImageInterpolateMethod</a> &#8226; <a href="magick-image.html#MagickSetImageIterations">MagickSetImageIterations</a> &#8226; <a href="magick-image.html#MagickSetImageMatte">MagickSetImageMatte</a> &#8226; <a href="magick-image.html#MagickSetImageMatteColor">MagickSetImageMatteColor</a> &#8226; <a href="magick-image.html#MagickSetImageAlpha">MagickSetImageAlpha</a> &#8226; <a href="magick-image.html#MagickSetImageOrientation">MagickSetImageOrientation</a> &#8226; <a href="magick-image.html#MagickSetImagePage">MagickSetImagePage</a> &#8226; <a href="magick-image.html#MagickSetImagePixelColor">MagickSetImagePixelColor</a> &#8226; <a href="magick-image.html#MagickSetImageProgressMonitor">MagickSetImageProgressMonitor</a> &#8226; <a href="magick-image.html#MagickSetImageRedPrimary">MagickSetImageRedPrimary</a> &#8226; <a href="magick-image.html#MagickSetImageRenderingIntent">MagickSetImageRenderingIntent</a> &#8226; <a href="magick-image.html#MagickSetImageResolution">MagickSetImageResolution</a> &#8226; <a href="magick-image.html#MagickSetImageScene">MagickSetImageScene</a> &#8226; <a href="magick-image.html#MagickSetImageTicksPerSecond">MagickSetImageTicksPerSecond</a> &#8226; <a href="magick-image.html#MagickSetImageType">MagickSetImageType</a> &#8226; <a href="magick-image.html#MagickSetImageUnits">MagickSetImageUnits</a> &#8226; <a href="magick-image.html#MagickSetImageVirtualPixelMethod">MagickSetImageVirtualPixelMethod</a> &#8226; <a href="magick-image.html#MagickSetImageWhitePoint">MagickSetImageWhitePoint</a> &#8226; <a href="magick-image.html#MagickShadeImage">MagickShadeImage</a> &#8226; <a href="magick-image.html#MagickShadowImage">MagickShadowImage</a> &#8226; <a href="magick-image.html#MagickSharpenImage">MagickSharpenImage</a> &#8226; <a href="magick-image.html#MagickShaveImage">MagickShaveImage</a> &#8226; <a href="magick-image.html#MagickShearImage">MagickShearImage</a> &#8226; <a href="magick-image.html#MagickSigmoidalContrastImage">MagickSigmoidalContrastImage</a> &#8226; <a href="magick-image.html#MagickSimilarityImage">MagickSimilarityImage</a> &#8226; <a href="magick-image.html#MagickSketchImage">MagickSketchImage</a> &#8226; <a href="magick-image.html#MagickSmushImages">MagickSmushImages</a> &#8226; <a href="magick-image.html#MagickSolarizeImage">MagickSolarizeImage</a> &#8226; <a href="magick-image.html#MagickSparseColorImage">MagickSparseColorImage</a> &#8226; <a href="magick-image.html#MagickSpliceImage">MagickSpliceImage</a> &#8226; <a href="magick-image.html#MagickSpreadImage">MagickSpreadImage</a> &#8226; <a href="magick-image.html#MagickStatisticImage">MagickStatisticImage</a> &#8226; <a href="magick-image.html#MagickSteganoImage">MagickSteganoImage</a> &#8226; <a href="magick-image.html#MagickStereoImage">MagickStereoImage</a> &#8226; <a href="magick-image.html#MagickStripImage">MagickStripImage</a> &#8226; <a href="magick-image.html#MagickSwirlImage">MagickSwirlImage</a> &#8226; <a href="magick-image.html#MagickTextureImage">MagickTextureImage</a> &#8226; <a href="magick-image.html#MagickThresholdImage">MagickThresholdImage</a> &#8226; <a href="magick-image.html#MagickThumbnailImage">MagickThumbnailImage</a> &#8226; <a href="magick-image.html#MagickTintImage">MagickTintImage</a> &#8226; <a href="magick-image.html#MagickTransformImageColorspace">MagickTransformImageColorspace</a> &#8226; <a href="magick-image.html#MagickTransparentPaintImage">MagickTransparentPaintImage</a> &#8226; <a href="magick-image.html#MagickTransposeImage">MagickTransposeImage</a> &#8226; <a href="magick-image.html#MagickTransverseImage">MagickTransverseImage</a> &#8226; <a href="magick-image.html#MagickTrimImage">MagickTrimImage</a> &#8226; <a href="magick-image.html#MagickUniqueImageColors">MagickUniqueImageColors</a> &#8226; <a href="magick-image.html#MagickUnsharpMaskImage">MagickUnsharpMaskImage</a> &#8226; <a href="magick-image.html#MagickVignetteImage">MagickVignetteImage</a> &#8226; <a href="magick-image.html#MagickWaveImage">MagickWaveImage</a> &#8226; <a href="magick-image.html#MagickWaveletDenoiseImage">MagickWaveletDenoiseImage</a> &#8226; <a href="magick-image.html#MagickWhiteBalanceImage">MagickWhiteBalanceImage</a> &#8226; <a href="magick-image.html#MagickWhiteThresholdImage">MagickWhiteThresholdImage</a> &#8226; <a href="magick-image.html#MagickWriteImage">MagickWriteImage</a> &#8226; <a href="magick-image.html#MagickWriteImageFile">MagickWriteImageFile</a> &#8226; <a href="magick-image.html#MagickWriteImages">MagickWriteImages</a> &#8226; <a href="magick-image.html#MagickWriteImagesFile">MagickWriteImagesFile</a></p>
 
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="GetImageFromMagickWand">GetImageFromMagickWand</a></h2>
 
@@ -521,6 +521,46 @@
 
 <dd>  </dd>
 </dl>
+<h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickBilateralBlurImage">MagickBilateralBlurImage</a></h2>
+
+<p>MagickBilateralBlurImage() is a non-linear, edge-preserving, and noise-reducing smoothing filter for images.  It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels. This weight is based on a Gaussian distribution.  The weights depend not only on Euclidean distance of pixels, but also on the radiometric differences (e.g., range differences, such as color intensity, depth distance, etc.). This preserves sharp edges.</p>
+
+<p>The format of the MagickBilateralBlurImage method is:</p>
+
+<pre class="text">
+MagickBooleanType MagickBilateralBlurImage(MagickWand *wand,
+  const double radius,const double sigma,const double intensity_sigma,
+  const double spatial_sigma)
+</pre>
+
+<p>A description of each parameter follows:</p>
+
+<dd>
+</dd>
+
+<dd> </dd>
+<dl class="dl-horizontal">
+<dt>wand</dt>
+<dd>the magick wand. </dd>
+
+<dd> </dd>
+<dt>radius</dt>
+<dd>the radius of the Gaussian, in pixels, not counting the center pixel. </dd>
+
+<dd> </dd>
+<dt>sigma</dt>
+<dd>the standard deviation of the , in pixels. </dd>
+
+<dd> </dd>
+<dt>intensity_sigma</dt>
+<dd>sigma in the intensity space. A larger value means that farther colors within the pixel neighborhood (see spatial_sigma) will be mixed together, resulting in larger areas of semi-equal color. </dd>
+
+<dd> </dd>
+<dt>spatial_sigma</dt>
+<dd>sigma in the coordinate space. A larger value means that farther pixels influence each other as long as their colors are close enough (see intensity_sigma ). When the neigborhood diameter is greater than zero, it specifies the neighborhood size regardless of spatial_sigma. Otherwise, the neigborhood diameter is proportional to spatial_sigma. </dd>
+
+<dd>  </dd>
+</dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickBlackThresholdImage">MagickBlackThresholdImage</a></h2>
 
 <p>MagickBlackThresholdImage() is like MagickThresholdImage() but  forces all pixels below the threshold into black while leaving all pixels above the threshold unchanged.</p>
@@ -598,7 +638,7 @@
 
 <dd> </dd>
 <dt>radius</dt>
-<dd>the radius of the , in pixels, not counting the center pixel. </dd>
+<dd>the radius of the Gaussian, in pixels, not counting the center pixel. </dd>
 
 <dd> </dd>
 <dt>sigma</dt>
@@ -4052,7 +4092,7 @@
 </dl>
 <h2><a href="../../api/MagickWand/magick-image_8c.html" id="MagickImportImagePixels">MagickImportImagePixels</a></h2>
 
-<p>MagickImportImagePixels() accepts pixel datand stores it in the image at the location you specify.  The method returns MagickFalse on success otherwise MagickTrue if an error is encountered.  The pixel data can be either char, short int, int, ssize_t, float, or double in the order specified by map.</p>
+<p>MagickImportImagePixels() accepts pixel datand stores it in the image at the location you specify.  The method returns MagickTrue on success otherwise MagickFalse if an error is encountered.  The pixel data can be either char, short int, int, ssize_t, float, or double in the order specified by map.</p>
 
 <p>Suppose your want to upload the first scanline of a 640x480 image from character data in red-green-blue order:</p>
 
@@ -8412,7 +8452,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/magick-property.html b/www/api/magick-property.html
index 5d689e3..d824e98 100644
--- a/www/api/magick-property.html
+++ b/www/api/magick-property.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Property Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -1383,7 +1383,7 @@
 </dl>
 <h2><a href="../../api/MagickWand/magick-property_8c.html" id="MagickSetImageArtifact">MagickSetImageArtifact</a></h2>
 
-<p>MagickSetImageArtifact() associates a artifact with an image.</p>
+<p>MagickSetImageArtifact() sets a key-value pair in the image artifact namespace.  Artifacts differ from properties.  Properties are public and are generally exported to an external image format if the format supports it. Artifacts are private and are utilized by the internal ImageMagick API to modify the behavior of certain algorithms.</p>
 
 <p>The format of the MagickSetImageArtifact method is:</p>
 
@@ -1974,7 +1974,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/magick-wand.html b/www/api/magick-wand.html
index 30be53f..8d348b3 100644
--- a/www/api/magick-wand.html
+++ b/www/api/magick-wand.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Wand Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -697,7 +697,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/magick.html b/www/api/magick.html
index 15c681d..cfb493c 100644
--- a/www/api/magick.html
+++ b/www/api/magick.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Read or List Image formats</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -227,7 +227,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/memory.html b/www/api/memory.html
index 804b4a2..1c8bf67 100644
--- a/www/api/memory.html
+++ b/www/api/memory.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Memory Allocation</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -533,7 +533,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/mime.html b/www/api/mime.html
index 0995f8e..f6462cd 100644
--- a/www/api/mime.html
+++ b/www/api/mime.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Mime Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -264,7 +264,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/module.html b/www/api/module.html
index 337a67a..d8c60ef 100644
--- a/www/api/module.html
+++ b/www/api/module.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Loadable Modules</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -531,7 +531,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/mogrify.html b/www/api/mogrify.html
index e6d7dfa..2f43c72 100644
--- a/www/api/mogrify.html
+++ b/www/api/mogrify.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Command-line Interface</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -159,7 +159,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/monitor.html b/www/api/monitor.html
index 5e6ffd5..3d4d60e 100644
--- a/www/api/monitor.html
+++ b/www/api/monitor.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Monitor the Progress of an Image Operation</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -226,7 +226,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/montage.html b/www/api/montage.html
index 43c1170..af78dde 100644
--- a/www/api/montage.html
+++ b/www/api/montage.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Create an Image Thumbnail</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -113,7 +113,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/morphology.html b/www/api/morphology.html
index e4e61c0..2970a16 100644
--- a/www/api/morphology.html
+++ b/www/api/morphology.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Morphological Erosions, Dilations, Openings, and Closings</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -648,7 +648,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/paint.html b/www/api/paint.html
index 77e70af..f625698 100644
--- a/www/api/paint.html
+++ b/www/api/paint.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Paint on an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -325,7 +325,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/pixel-iterator.html b/www/api/pixel-iterator.html
index 3764c4c..a142bfb 100644
--- a/www/api/pixel-iterator.html
+++ b/www/api/pixel-iterator.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Pixel Iterator Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -536,7 +536,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/pixel-wand.html b/www/api/pixel-wand.html
index 48ca77b..5b310b4 100644
--- a/www/api/pixel-wand.html
+++ b/www/api/pixel-wand.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Pixel Wand Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -1605,7 +1605,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/profile.html b/www/api/profile.html
index f78a855..d5ca4d6 100644
--- a/www/api/profile.html
+++ b/www/api/profile.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Dealing with Image Profiles</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -378,7 +378,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/property.html b/www/api/property.html
index b2fc6b5..44541f7 100644
--- a/www/api/property.html
+++ b/www/api/property.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Get/Set Image Properties</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -430,7 +430,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/quantize.html b/www/api/quantize.html
index a10750f..735e875 100644
--- a/www/api/quantize.html
+++ b/www/api/quantize.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Reduce the Number of Unique Colors in an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -557,7 +557,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/registry.html b/www/api/registry.html
index 66398c8..4bb548a 100644
--- a/www/api/registry.html
+++ b/www/api/registry.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: The Image Registry</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -284,7 +284,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/resize.html b/www/api/resize.html
index 3ee56ce..e1bc3eb 100644
--- a/www/api/resize.html
+++ b/www/api/resize.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Resize an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -474,7 +474,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/resource.html b/www/api/resource.html
index 6310249..76cb3f5 100644
--- a/www/api/resource.html
+++ b/www/api/resource.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Monitor or Limit Resource Consumption</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -301,7 +301,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/segment.html b/www/api/segment.html
index ccac5ef..97fea78 100644
--- a/www/api/segment.html
+++ b/www/api/segment.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Segment an Image with Thresholding Fuzzy c-Means</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -146,7 +146,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/shear.html b/www/api/shear.html
index f0339a4..520538a 100644
--- a/www/api/shear.html
+++ b/www/api/shear.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Shear or Rotate an Image by an Arbitrary Angle</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -217,7 +217,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/signature.html b/www/api/signature.html
index b439b77..46aa28c 100644
--- a/www/api/signature.html
+++ b/www/api/signature.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Compute a Message Digest for an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -139,7 +139,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/statistic.html b/www/api/statistic.html
index 096603b..b0473c9 100644
--- a/www/api/statistic.html
+++ b/www/api/statistic.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Image Statistics</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -552,7 +552,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/stream.html b/www/api/stream.html
index b8bd782..7a63cb8 100644
--- a/www/api/stream.html
+++ b/www/api/stream.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: The Pixel FIFO</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -152,7 +152,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/transform.html b/www/api/transform.html
index 63ab774..cbdf397 100644
--- a/www/api/transform.html
+++ b/www/api/transform.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Transform an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -568,7 +568,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/version.html b/www/api/version.html
index efe196d..abf62f8 100644
--- a/www/api/version.html
+++ b/www/api/version.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, C API: Get the Version and Copyrights</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -301,7 +301,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/api/wand-view.html b/www/api/wand-view.html
index 63f8bb3..0ebe443 100644
--- a/www/api/wand-view.html
+++ b/www/api/wand-view.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API: Wand View Methods</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -592,7 +592,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/architecture.html b/www/architecture.html
index 63bd548..9f06672 100644
--- a/www/architecture.html
+++ b/www/architecture.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Architecture</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -122,7 +122,7 @@
   <li>pixels from two different images (e.g. pixel at 5,1 from image 1 and pixel at 5,1 from image 2)</li>
   <li>pixels outside the boundaries of the image (e.g. pixel at -1,-3)</li>
   <li>a pixel component that is unsigned (65311) or in a floating-point representation (e.g. 0.17836)</li>
-  <li>a high-dynamic range pixel that can include negative values (e.g. -0.00716) as well as values that exceed the quantum depth (e.g. 65931)</li>
+  <li>a high-dynamic range pixel that can include negative values (e.g. -0.0072973525628) as well as values that exceed the quantum depth (e.g. 65931)</li>
   <li>one or more pixels simultaneously in different threads of execution</li>
   <li>all the pixels in memory to take advantage of speed-ups offered by executing in concert across heterogeneous platforms consisting of CPUs, GPUs, and other processors</li>
   <li>traits associated with each channel to specify whether the pixel channel is copied, updated, or blended</li>
@@ -170,7 +170,7 @@
 
 <p>When the pixel cache is initialized, pixels are scaled from whatever bit depth they originated from to that required by the pixel cache.  For example, a 1-channel 1-bit monochrome PBM image is scaled to 8-bit gray image, if you are using the Q8 version of ImageMagick, and 16-bit RGBA for the Q16 version.  You can determine which version you have with the <a class="text-nowrap" href="command-line-options.html#version">-version</a> option: </p>
 
-<pre><span class="crtprompt">$ </span><span class='crtin'>identify -version</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>Version: ImageMagick 7.0.10-39 2020-11-14 Q16 https://imagemagick.org</span></pre>
+<pre><span class="crtprompt">$ </span><span class='crtin'>identify -version</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>Version: ImageMagick 7.0.10-53 2020-12-16 Q16 https://imagemagick.org</span></pre>
 <p>As you can see, the convenience of the pixel cache sometimes comes with a trade-off in storage (e.g. storing a 1-bit monochrome image as 16-bit is wasteful) and speed (i.e. storing the entire image in memory is generally slower than accessing one scanline of pixels at a time).  In most cases, the benefits of the pixel cache typically outweigh any disadvantages.</p>
 
 <h3><a class="anchor" id="authentic-pixels"></a>Access the Pixel Cache</h3>
@@ -702,7 +702,7 @@
 <p>ImageMagick includes support for heterogeneous distributed processing with the <a href="http://en.wikipedia.org/wiki/OpenCL">OpenCL</a> framework.  OpenCL kernels within ImageMagick permit image processing algorithms to execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors.  Depending on your platform, speed-ups can be an order of magnitude faster than the traditional single CPU.</p>
 
 <p>First verify that your version of ImageMagick includes support for the OpenCL feature:</p>
-<pre class="highlight"><code>identify -version
+<pre class="highlight"><code>magick identify -version
 Features: DPC Cipher Modules OpenCL OpenMP(4.5)
 </code></pre>
 
@@ -1499,7 +1499,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -1507,4 +1507,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:38 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:21 -->
\ No newline at end of file
diff --git a/www/changelog.html b/www/changelog.html
index 81723e8..901f57c 100644
--- a/www/changelog.html
+++ b/www/changelog.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Changelog</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -89,11 +89,75 @@
 
   <main role="main" class="container">
     <div class="magick-template">
-<div class="magick-header"><dl><dt>2020-11-17  7.0.10-39  &lt;quetzlzacatenango@image...&gt;</dt>
+<div class="magick-header"><dl><dt>2020-12-24  7.0.10-53  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-53 GIT revision 18083:3b141f557:20201224</li>
+<dt>2020-12-20  7.0.10-53  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> CSS colors no longer require commas.</li>
+  <li> eliminate possible arthimetic overflow (reference    https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=28849)</li>
+  <li> support display-p3, Adobe-98, and Pro-photo colorspaces</li>
+  <li> read/write 1024 colors Sixel images (reference    https://github.com/ImageMagick/ImageMagick/discussions/3018).</li>
+<dt>2020-12-19  7.0.10-52  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-52 GIT revision 18057:1f5bab30b:20201219</li>
+<dt>2020-12-19  7.0.10-52  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> return alpha bytes with stream utility (reference    https://github.com/ImageMagick/ImageMagick/discussions/2862).</li>
+  <li> percentage -border in x no longer adds one pixel border in y (reference    https://github.com/ImageMagick/ImageMagick/issues/2978).</li>
+<dt>2020-12-18  7.0.10-51  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-51 GIT revision 18052:475508769:20201218</li>
+<dt>2020-12-17  7.0.10-51  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> reduce time to identify PDF/PS/XPS/PCL image width/height (reference    https://github.com/ImageMagick/ImageMagick/discussions/2993).</li>
+<dt>2020-12-16  7.0.10-50  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-50 GIT revision 18046:83c162886:20201216</li>
+<dt>2020-12-15  7.0.10-50  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> revert patch to ready gray alpha TIFF image.</li>
+<dt>2020-12-14  7.0.10-49  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-49 GIT revision 18040:7976abf6e:20201214</li>
+<dt>2020-12-13  7.0.10-49  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> correct previous patch to read planar RGB TIFF images.</li>
+<dt>2020-12-10  7.0.10-48  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-48 GIT revision 18026:4646e5fd1:20201210</li>
+<dt>2020-12-09  7.0.10-48  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Repair unit test failures (reference    https://github.com/ImageMagick/ImageMagick/issues/2959).</li>
+<dt>2020-12-09  7.0.10-47  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-47 GIT revision 18020:6f1ee6104:20201209</li>
+<dt>2020-12-06  7.0.10-47  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> support YAML image format.</li>
+  <li> use generic TIFF read method for LZW-compressed strips (reference    https://github.com/ImageMagick/ImageMagick/discussions/2935).</li>
+<dt>2020-12-05  7.0.10-46  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-46 GIT revision 18001:7c75b33a1:20201205</li>
+<dt>2020-11-30  7.0.10-46  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> possible TIFF related-heap buffer overflow (alert &amp; POC by Hardik Shah).</li>
+  <li> set default system font in policy.xml configuration file.</li>
+  <li> support portable float map format 16-bit half.</li>
+<dt>2020-11-30  7.0.10-45  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-45 GIT revision 17972:6c0cb7f72:20201130</li>
+<dt>2020-11-30  7.0.10-45  Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
+  <li> added support for the farbfeld format (reference    https://github.com/ImageMagick/ImageMagick/discussions/2664).</li>
+<dt>2020-11-29  7.0.10-45  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> specify the bilateral neighbor as width/height rather than radius/sigma.</li>
+<dt>2020-11-28  7.0.10-44  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-44 GIT revision 17948:7e96e9fdd:20201128</li>
+<dt>2020-11-26  7.0.10-44  Dirk Lemstra &lt;dirk@lem.....org&gt;</dt>
+  <li> correct reading of first row in TIFF decoder.</li>
+<dt>2020-11-24  7.0.10-44  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> correct rotation parameter for SVG transform.</li>
+<dt>2020-11-23  7.0.10-43  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-43 GIT revision 17885:be852878e:20201123</li>
+<dt>2020-11-23  7.0.10-43  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> add padding to AcquirePolicyString().</li>
+<dt>2020-11-22  7.0.10-42  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-42 GIT revision 17881:d228ef95e:20201122</li>
+<dt>2020-11-21  7.0.10-42  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> revert memory patch to avert possible thread lock.</li>
+  <li> add support for FilmLight FL32 image format.</li>
+<dt>2020-11-20  7.0.10-40  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> Release ImageMagick version 7.0.10-40 GIT revision 17860:2594cd0a5:20201120 </li>
+<dt>2020-11-19  7.0.10-40  &lt;quetzlzacatenango@image...&gt;</dt>
+  <li> remove Linux shell artifact from Windows delegate configuration file.</li>
+  <li> fix shell injection vulnerability via the -authenticate option (reference    alex@cure...).</li>
+<dt>2020-11-17  7.0.10-39  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Release ImageMagick version 7.0.10-39 GIT revision 17837:ffb8da39c:20201117</li>
 <dt>2020-11-07  7.0.10-39  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> support DPX 4:2:2 sampling.</li>
-  <li> fix shell injection vulnerability via the -authenticate option (reference    alex@cure...).</li>
 <dt>2020-11-14  7.0.10-38  &lt;quetzlzacatenango@image...&gt;</dt>
   <li> Release ImageMagick version 7.0.10-38 GIT revision 17815:bf51a3f1f:20201114</li>
 <dt>2020-11-07  7.0.10-38  &lt;quetzlzacatenango@image...&gt;</dt>
@@ -1428,7 +1492,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -1436,4 +1500,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:34 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:10 -->
\ No newline at end of file
diff --git a/www/cipher.html b/www/cipher.html
index 3c723a0..9472b75 100644
--- a/www/cipher.html
+++ b/www/cipher.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Encipher or Decipher an Image</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -172,7 +172,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -180,4 +180,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:40 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:27 -->
\ No newline at end of file
diff --git a/www/cite.html b/www/cite.html
index 154c492..d347f4e 100644
--- a/www/cite.html
+++ b/www/cite.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - How to Cite</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -94,13 +94,13 @@
 <p class="lead magick-description">Learn how to cite ImageMagick in your work.  Choose from these citation formats:</p>
 
 <h5>Citation in APA style</h5>
-<p class="highlight">The ImageMagick Development Team. (2020). ImageMagick. Retrieved from https://imagemagick.org</p>
+<p class="highlight">The ImageMagick Development Team. (2021). ImageMagick. Retrieved from https://imagemagick.org</p>
 
 <h5>Citation in Vancouver style</h5>
-<p class="highlight">1. The ImageMagick Development Team. ImageMagick [Internet]. 2020. Available from: https://imagemagick.org</p>
+<p class="highlight">1. The ImageMagick Development Team. ImageMagick [Internet]. 2021. Available from: https://imagemagick.org</p>
 
 <h5>Citation in Harvard style</h5>
-<p class="highlight">The ImageMagick Development Team, 2020. ImageMagick, Available at: https://imagemagick.org.</p>
+<p class="highlight">The ImageMagick Development Team, 2021. ImageMagick, Available at: https://imagemagick.org.</p>
 <h5>Citation in Bibtex format</h5>
 <div class="highlight">
 @software{imagemagick,
@@ -108,7 +108,7 @@
 <br>  title = {ImageMagick},
 <br>  url = {https://imagemagick.org},
 <br>  version = {7.0.10},
-<br>  date = {2020-06-12},
+<br>  date = {2021-01-04},
 <br>}
 </div>
     </div>
@@ -131,7 +131,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -139,4 +139,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 20:42 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:04 -->
\ No newline at end of file
diff --git a/www/clahe.html b/www/clahe.html
index 404ff6b..fb76a14 100644
--- a/www/clahe.html
+++ b/www/clahe.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Contrast Limited Adaptive Histogram Equalization</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -142,7 +142,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -150,4 +150,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 20:38 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/color-management.html b/www/color-management.html
index cb86ad8..94ea48f 100644
--- a/www/color-management.html
+++ b/www/color-management.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Color Management</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -168,7 +168,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -176,4 +176,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:59 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:43 -->
\ No newline at end of file
diff --git a/www/color-thresholding.html b/www/color-thresholding.html
index d916438..72059f2 100644
--- a/www/color-thresholding.html
+++ b/www/color-thresholding.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Color Thresholding</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -179,7 +179,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -187,4 +187,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:41 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/color.html b/www/color.html
index 63bfed5..1f014e7 100644
--- a/www/color.html
+++ b/www/color.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Color Names</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -122,7 +122,7 @@
 
 <p>The format of an sRGB value in hexadecimal notation is a '#' immediately followed by either three, six, or twelve hexadecimal characters. The three-digit sRGB notation (#rgb) is converted into six-digit form (#rrggbb) by replicating digits, not by adding zeros. For example,  #fb0 expands to #ffbb00. This ensures that white (#ffffff) can be specified with the short notation (#fff) and removes any dependencies on the color depth of the image. Use the hexadecimal notation whenever performance is an issue.  ImageMagick does not need to load the expansive color table to interpret a hexadecimal color, e.g., <code>#000000</code>, but it does if <code>black</code> is used instead.</p>
 
-<p>The format of an sRGB value in the functional notation is 'rgb(<var>r</var>,<var>g</var>,<var>b</var>)',  where  <var>r</var>, <var>g</var>, and <var>b</var> are either three integer or float values in the range 0—255 or three integer or float percentage values in the range 0—100%. The value 255 corresponds to 100%, and to #F or #FF in the hexadecimal notation: rgb(255, 255, 255) = rgb(100%, 100%, 100%) = #FFF = #FFFFFF. </p>
+<p>The format of an sRGB value in the functional notation is 'rgb(<var>r</var>,<var>g</var>,<var>b</var>)',  where  <var>r</var>, <var>g</var>, and <var>b</var> are either three integer or float values in the range 0—255 or three integer or float percentage values in the range 0—100%. The value 255 corresponds to 100%, and to #F or #FF in the hexadecimal notation: rgb(255, 255, 255) = rgb(100%, 100%, 100%) = #FFF = #FFFFFF. Note, as of ImageMagick 7.0.10-53, the commas are no longer necessary and the slash can proceed the alpha value, e.g. <code>rgb(255 128 0 / 50%)</code>.</p>
 
 <p>White space characters are allowed around the numerical values, at least if the entire color argument is enclosed in quotes ('single quotes' for Unix-like systems, "double quotes" for Windows).</p>
 
@@ -163,7 +163,7 @@
 
 <p>The HSB color system is a little easier to understand than the HSL color system. In the HSB color system, black is at the bottom apex and white is at the top center of the cone on the central axis. The most colorful or saturated colors will then be at the outer edge of the top of the cone at the widest part. Thus at Saturation=100% and Brightness=100%</p>
 
-<pre class="highlight"><code>hsb(0,   100%,  100%)    or    hsb(0,   255,   255)          full red
+<pre class="highlight"><code>hsb(0,   100%,  100%)    or    hsb(0,   255,   255)       full red
 hsb(120, 100%,  100%)    or    hsb(120, 255,   255)       full green
 hsb(120, 100%,  75%)     or    hsb(120, 255,   191.25)    medium green
 hsb(120, 100%,  50%)     or    hsb(120, 255,   127.5)     dark green
@@ -172,7 +172,7 @@
 
 <p>In the HSL color system, black is at the bottom apex and white is at the top apex. However, saturation is largest at the middle of the double cone on its outer perimeter and thus at a lightness value of 50%. The most colorful or saturated colors will then be at the outer edge of the double cone at its widest part. Thus at Saturation=100% and Brightness=50%</p>
 
-<pre class="highlight"><code>hsl(0,   100%,  50%)     or    hsl(0,   255,   127.5)        full red
+<pre class="highlight"><code>hsl(0,   100%,  50%)     or    hsl(0,   255,   127.5)     full red
 hsl(120, 100%,  100%)    or    hsl(120, 255,   255)       white
 hsl(120, 100%,  75%)     or    hsl(120, 255,   191.25)    pastel green
 hsl(120, 100%,  50%)     or    hsl(120, 255,   127.5)     full green
@@ -220,6 +220,8 @@
 device-rgb(0.5, 1.0, 0.0)
 device-cmyk(0.11, 0.48, 0.83, 0.00)</code></pre>
 
+<p>ImageMagick also supports wide-gamut color such as <code>Lab</code>, <code>LCH</code>, and <code>Display-P3</code>.</p>
+
 <h2><a class="anchor" id="color_names"></a>List of Color Names</h2>
 
 <p>The table below provides a list of named colors recognized by ImageMagick:</p>
@@ -4975,7 +4977,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -4983,4 +4985,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:05 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/command-line-options.html b/www/command-line-options.html
index a8cc928..e7e4059 100644
--- a/www/command-line-options.html
+++ b/www/command-line-options.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Options</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -91,7 +91,7 @@
     <div class="magick-template">
 <div class="magick-header">
 <h1 class="text-center">Annotated List of Command-line Options</h1>
-<p class="text-center"><a class="text-nowrap" href="command-line-options.html#adaptive-blur">-adaptive-blur</a>  • <a class="text-nowrap" href="command-line-options.html#adaptive-resize">-adaptive-resize</a>  • <a class="text-nowrap" href="command-line-options.html#adaptive-sharpen">-adaptive-sharpen</a>  • <a class="text-nowrap" href="command-line-options.html#adjoin">-adjoin</a>  • <a class="text-nowrap" href="command-line-options.html#affine">-affine</a>  • <a class="text-nowrap" href="command-line-options.html#alpha">-alpha</a>  • <a class="text-nowrap" href="command-line-options.html#annotate">-annotate</a>  • <a class="text-nowrap" href="command-line-options.html#antialias">-antialias</a>  • <a class="text-nowrap" href="command-line-options.html#append">-append</a>  • <a class="text-nowrap" href="command-line-options.html#attenuate">-attenuate</a>  • <a class="text-nowrap" href="command-line-options.html#authenticate">-authenticate</a>  • <a class="text-nowrap" href="command-line-options.html#auto-gamma">-auto-gamma</a>  • <a class="text-nowrap" href="command-line-options.html#auto-level">-auto-level</a>  • <a class="text-nowrap" href="command-line-options.html#auto-orient">-auto-orient</a>  • <a class="text-nowrap" href="command-line-options.html#auto-threshold">-auto-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#backdrop">-backdrop</a>  • <a class="text-nowrap" href="command-line-options.html#background">-background</a>  • <a class="text-nowrap" href="command-line-options.html#bench">-bench</a>  • <a class="text-nowrap" href="command-line-options.html#bias">-bias</a>  • <a class="text-nowrap" href="command-line-options.html#black-point-compensation">-black-point-compensation</a>  • <a class="text-nowrap" href="command-line-options.html#black-threshold">-black-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#blend">-blend</a>  • <a class="text-nowrap" href="command-line-options.html#blue-primary">-blue-primary</a>  • <a class="text-nowrap" href="command-line-options.html#blue-shift">-blue-shift</a>  • <a class="text-nowrap" href="command-line-options.html#blur">-blur</a>  • <a class="text-nowrap" href="command-line-options.html#border">-border</a>  • <a class="text-nowrap" href="command-line-options.html#bordercolor">-bordercolor</a>  • <a class="text-nowrap" href="command-line-options.html#borderwidth">-borderwidth</a>  • <a class="text-nowrap" href="command-line-options.html#brightness-contrast">-brightness-contrast</a>  • <a class="text-nowrap" href="command-line-options.html#cache">-cache</a>  • <a class="text-nowrap" href="command-line-options.html#canny">-canny</a>  • <a class="text-nowrap" href="command-line-options.html#caption">-caption</a>  • <a class="text-nowrap" href="command-line-options.html#cdl">-cdl</a>  • <a class="text-nowrap" href="command-line-options.html#channel">-channel</a>  • <a class="text-nowrap" href="command-line-options.html#charcoal">-charcoal</a>  • <a class="text-nowrap" href="command-line-options.html#channel-fx">-channel-fx</a>  • <a class="text-nowrap" href="command-line-options.html#chop">-chop</a>  • <a class="text-nowrap" href="command-line-options.html#clahe">-clahe</a>  • <a class="text-nowrap" href="command-line-options.html#clamp">-clamp</a>  • <a class="text-nowrap" href="command-line-options.html#clip">-clip</a>  • <a class="text-nowrap" href="command-line-options.html#clip-mask">-clip-mask</a>  • <a class="text-nowrap" href="command-line-options.html#clip-path">-clip-path</a>  • <a class="text-nowrap" href="command-line-options.html#clone">-clone</a>  • <a class="text-nowrap" href="command-line-options.html#clut">-clut</a>  • <a class="text-nowrap" href="command-line-options.html#coalesce">-coalesce</a>  • <a class="text-nowrap" href="command-line-options.html#colorize">-colorize</a>  • <a class="text-nowrap" href="command-line-options.html#colormap">-colormap</a>  • <a class="text-nowrap" href="command-line-options.html#color-matrix">-color-matrix</a>  • <a class="text-nowrap" href="command-line-options.html#colors">-colors</a>  • <a class="text-nowrap" href="command-line-options.html#colorspace">-colorspace</a>  • <a class="text-nowrap" href="command-line-options.html#color-threshold">-color-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#combine">-combine</a>  • <a class="text-nowrap" href="command-line-options.html#comment">-comment</a>  • <a class="text-nowrap" href="command-line-options.html#compare">-compare</a>  • <a class="text-nowrap" href="command-line-options.html#complex">-complex</a>  • <a class="text-nowrap" href="command-line-options.html#compose">-compose</a>  • <a class="text-nowrap" href="command-line-options.html#composite">-composite</a>  • <a class="text-nowrap" href="command-line-options.html#compress">-compress</a>  • <a class="text-nowrap" href="command-line-options.html#connected-components">-connected-components</a>  • <a class="text-nowrap" href="command-line-options.html#contrast">-contrast</a>  • <a class="text-nowrap" href="command-line-options.html#contrast-stretch">-contrast-stretch</a>  • <a class="text-nowrap" href="command-line-options.html#convolve">-convolve</a>  • <a class="text-nowrap" href="command-line-options.html#copy">-copy</a>  • <a class="text-nowrap" href="command-line-options.html#crop">-crop</a>  • <a class="text-nowrap" href="command-line-options.html#cycle">-cycle</a>  • <a class="text-nowrap" href="command-line-options.html#debug">-debug</a>  • <a class="text-nowrap" href="command-line-options.html#decipher">-decipher</a>  • <a class="text-nowrap" href="command-line-options.html#deconstruct">-deconstruct</a>  • <a class="text-nowrap" href="command-line-options.html#define">-define</a>  • <a class="text-nowrap" href="command-line-options.html#delay">-delay</a>  • <a class="text-nowrap" href="command-line-options.html#delete">-delete</a>  • <a class="text-nowrap" href="command-line-options.html#density">-density</a>  • <a class="text-nowrap" href="command-line-options.html#depth">-depth</a>  • <a class="text-nowrap" href="command-line-options.html#descend">-descend</a>  • <a class="text-nowrap" href="command-line-options.html#deskew">-deskew</a>  • <a class="text-nowrap" href="command-line-options.html#despeckle">-despeckle</a>  • <a class="text-nowrap" href="command-line-options.html#direction">-direction</a>  • <a class="text-nowrap" href="command-line-options.html#displace">-displace</a>  • <a class="text-nowrap" href="command-line-options.html#display">-display</a>  • <a class="text-nowrap" href="command-line-options.html#dispose">-dispose</a>  • <a class="text-nowrap" href="command-line-options.html#dissimilarity-threshold">-dissimilarity-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#dissolve">-dissolve</a>  • <a class="text-nowrap" href="command-line-options.html#distort">-distort</a>  • <a class="text-nowrap" href="command-line-options.html#distribute-cache">-distribute-cache</a>  • <a class="text-nowrap" href="command-line-options.html#dither">-dither</a>  • <a class="text-nowrap" href="command-line-options.html#draw">-draw</a>  • <a class="text-nowrap" href="command-line-options.html#duplicate">-duplicate</a>  • <a class="text-nowrap" href="command-line-options.html#edge">-edge</a>  • <a class="text-nowrap" href="command-line-options.html#emboss">-emboss</a>  • <a class="text-nowrap" href="command-line-options.html#encipher">-encipher</a>  • <a class="text-nowrap" href="command-line-options.html#encoding">-encoding</a>  • <a class="text-nowrap" href="command-line-options.html#endian">-endian</a>  • <a class="text-nowrap" href="command-line-options.html#enhance">-enhance</a>  • <a class="text-nowrap" href="command-line-options.html#equalize">-equalize</a>  • <a class="text-nowrap" href="command-line-options.html#evaluate">-evaluate</a>  • <a class="text-nowrap" href="command-line-options.html#evaluate-sequence">-evaluate-sequence</a>  • <a class="text-nowrap" href="command-line-options.html#extent">-extent</a>  • <a class="text-nowrap" href="command-line-options.html#extract">-extract</a>  • <a class="text-nowrap" href="command-line-options.html#family">-family</a>  • <a class="text-nowrap" href="command-line-options.html#features">-features</a>  • <a class="text-nowrap" href="command-line-options.html#fft">-fft</a>  • <a class="text-nowrap" href="command-line-options.html#fill">-fill</a>  • <a class="text-nowrap" href="command-line-options.html#filter">-filter</a>  • <a class="text-nowrap" href="command-line-options.html#flatten">-flatten</a>  • <a class="text-nowrap" href="command-line-options.html#flip">-flip</a>  • <a class="text-nowrap" href="command-line-options.html#floodfill">-floodfill</a>  • <a class="text-nowrap" href="command-line-options.html#flop">-flop</a>  • <a class="text-nowrap" href="command-line-options.html#font">-font</a>  • <a class="text-nowrap" href="command-line-options.html#foreground">-foreground</a>  • <a class="text-nowrap" href="command-line-options.html#format">-format</a>  • <a class="text-nowrap" href="command-line-options.html#format_identify_">-format[identify]</a>  • <a class="text-nowrap" href="command-line-options.html#frame">-frame</a>  • <a class="text-nowrap" href="command-line-options.html#frame_import_">-frame[import]</a>  • <a class="text-nowrap" href="command-line-options.html#function">-function</a>  • <a class="text-nowrap" href="command-line-options.html#fuzz">-fuzz</a>  • <a class="text-nowrap" href="command-line-options.html#fx">-fx</a>  • <a class="text-nowrap" href="command-line-options.html#gamma">-gamma</a>  • <a class="text-nowrap" href="command-line-options.html#gaussian-blur">-gaussian-blur</a>  • <a class="text-nowrap" href="command-line-options.html#geometry">-geometry</a>  • <a class="text-nowrap" href="command-line-options.html#gravity">-gravity</a>  • <a class="text-nowrap" href="command-line-options.html#grayscale">-grayscale</a>  • <a class="text-nowrap" href="command-line-options.html#green-primary">-green-primary</a>  • <a class="text-nowrap" href="command-line-options.html#hald-clut">-hald-clut</a>  • <a class="text-nowrap" href="command-line-options.html#help">-help</a>  • <a class="text-nowrap" href="command-line-options.html#highlight-color">-highlight-color</a>  • <a class="text-nowrap" href="command-line-options.html#hough-lines">-hough-lines</a>  • <a class="text-nowrap" href="command-line-options.html#iconGeometry">-iconGeometry</a>  • <a class="text-nowrap" href="command-line-options.html#iconic">-iconic</a>  • <a class="text-nowrap" href="command-line-options.html#identify">-identify</a>  • <a class="text-nowrap" href="command-line-options.html#ift">-ift</a>  • <a class="text-nowrap" href="command-line-options.html#immutable">-immutable</a>  • <a class="text-nowrap" href="command-line-options.html#implode">-implode</a>  • <a class="text-nowrap" href="command-line-options.html#insert">-insert</a>  • <a class="text-nowrap" href="command-line-options.html#intensity">-intensity</a>  • <a class="text-nowrap" href="command-line-options.html#intent">-intent</a>  • <a class="text-nowrap" href="command-line-options.html#interlace">-interlace</a>  • <a class="text-nowrap" href="command-line-options.html#interpolate">-interpolate</a>  • <a class="text-nowrap" href="command-line-options.html#interline-spacing">-interline-spacing</a>  • <a class="text-nowrap" href="command-line-options.html#interword-spacing">-interword-spacing</a>  • <a class="text-nowrap" href="command-line-options.html#kerning">-kerning</a>  • <a class="text-nowrap" href="command-line-options.html#kmeans">-kmeans</a>  • <a class="text-nowrap" href="command-line-options.html#kuwahara">-kuwahara</a>  • <a class="text-nowrap" href="command-line-options.html#label">-label</a>  • <a class="text-nowrap" href="command-line-options.html#lat">-lat</a>  • <a class="text-nowrap" href="command-line-options.html#layers">-layers</a>  • <a class="text-nowrap" href="command-line-options.html#level">-level</a>  • <a class="text-nowrap" href="command-line-options.html#level-colors">-level-colors</a>  • <a class="text-nowrap" href="command-line-options.html#limit">-limit</a>  • <a class="text-nowrap" href="command-line-options.html#linear-stretch">-linear-stretch</a>  • <a class="text-nowrap" href="command-line-options.html#linewidth">-linewidth</a>  • <a class="text-nowrap" href="command-line-options.html#liquid-rescale">-liquid-rescale</a>  • <a class="text-nowrap" href="command-line-options.html#list">-list</a>  • <a class="text-nowrap" href="command-line-options.html#log">-log</a>  • <a class="text-nowrap" href="command-line-options.html#loop">-loop</a>  • <a class="text-nowrap" href="command-line-options.html#lowlight-color">-lowlight-color</a>  • <a class="text-nowrap" href="command-line-options.html#magnify">-magnify</a>  • <a class="text-nowrap" href="command-line-options.html#map">-map</a>  • <a class="text-nowrap" href="command-line-options.html#map_stream_">-map[stream]</a>  • <a class="text-nowrap" href="command-line-options.html#mattecolor">-mattecolor</a>  • <a class="text-nowrap" href="command-line-options.html#median">-median</a>  • <a class="text-nowrap" href="command-line-options.html#mean-shift">-mean-shift</a>  • <a class="text-nowrap" href="command-line-options.html#metric">-metric</a>  • <a class="text-nowrap" href="command-line-options.html#mode">-mode</a>  • <a class="text-nowrap" href="command-line-options.html#modulate">-modulate</a>  • <a class="text-nowrap" href="command-line-options.html#moments">-moments</a>  • <a class="text-nowrap" href="command-line-options.html#monitor">-monitor</a>  • <a class="text-nowrap" href="command-line-options.html#monochrome">-monochrome</a>  • <a class="text-nowrap" href="command-line-options.html#morph">-morph</a>  • <a class="text-nowrap" href="command-line-options.html#morphology">-morphology</a>  • <a class="text-nowrap" href="command-line-options.html#mosaic">-mosaic</a>  • <a class="text-nowrap" href="command-line-options.html#motion-blur">-motion-blur</a>  • <a class="text-nowrap" href="command-line-options.html#name">-name</a>  • <a class="text-nowrap" href="command-line-options.html#negate">-negate</a>  • <a class="text-nowrap" href="command-line-options.html#noise">-noise</a>  • <a class="text-nowrap" href="command-line-options.html#normalize">-normalize</a>  • <a class="text-nowrap" href="command-line-options.html#opaque">-opaque</a>  • <a class="text-nowrap" href="command-line-options.html#ordered-dither">-ordered-dither</a>  • <a class="text-nowrap" href="command-line-options.html#orient">-orient</a>  • <a class="text-nowrap" href="command-line-options.html#page">-page</a>  • <a class="text-nowrap" href="command-line-options.html#paint">-paint</a>  • <a class="text-nowrap" href="command-line-options.html#path">-path</a>  • <a class="text-nowrap" href="command-line-options.html#pause_animate_">-pause[animate]</a>  • <a class="text-nowrap" href="command-line-options.html#pause_import_">-pause[import]</a>  • <a class="text-nowrap" href="command-line-options.html#perceptible">-perceptible</a>  • <a class="text-nowrap" href="command-line-options.html#ping">-ping</a>  • <a class="text-nowrap" href="command-line-options.html#pointsize">-pointsize</a>  • <a class="text-nowrap" href="command-line-options.html#polaroid">-polaroid</a>  • <a class="text-nowrap" href="command-line-options.html#poly">-poly</a>  • <a class="text-nowrap" href="command-line-options.html#posterize">-posterize</a>  • <a class="text-nowrap" href="command-line-options.html#precision">-precision</a>  • <a class="text-nowrap" href="command-line-options.html#preview">-preview</a>  • <a class="text-nowrap" href="command-line-options.html#print">-print</a>  • <a class="text-nowrap" href="command-line-options.html#process">-process</a>  • <a class="text-nowrap" href="command-line-options.html#profile">-profile</a>  • <a class="text-nowrap" href="command-line-options.html#quality">-quality</a>  • <a class="text-nowrap" href="command-line-options.html#quantize">-quantize</a>  • <a class="text-nowrap" href="command-line-options.html#quiet">-quiet</a>  • <a class="text-nowrap" href="command-line-options.html#radial-blur">-radial-blur</a>  • <a class="text-nowrap" href="command-line-options.html#raise">-raise</a>  • <a class="text-nowrap" href="command-line-options.html#random-threshold">-random-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#range-threshold">-range-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#read-mask">-read-mask</a>  • <a class="text-nowrap" href="command-line-options.html#red-primary">-red-primary</a>  • <a class="text-nowrap" href="command-line-options.html#regard-warnings">-regard-warnings</a>  • <a class="text-nowrap" href="command-line-options.html#region">-region</a>  • <a class="text-nowrap" href="command-line-options.html#remap">-remap</a>  • <a class="text-nowrap" href="command-line-options.html#remote">-remote</a>  • <a class="text-nowrap" href="command-line-options.html#render">-render</a>  • <a class="text-nowrap" href="command-line-options.html#repage">-repage</a>  • <a class="text-nowrap" href="command-line-options.html#resample">-resample</a>  • <a class="text-nowrap" href="command-line-options.html#resize">-resize</a>  • <a class="text-nowrap" href="command-line-options.html#respect-parentheses">-respect-parentheses</a>  • <a class="text-nowrap" href="command-line-options.html#reverse">-reverse</a>  • <a class="text-nowrap" href="command-line-options.html#roll">-roll</a>  • <a class="text-nowrap" href="command-line-options.html#rotate">-rotate</a>  • <a class="text-nowrap" href="command-line-options.html#sample">-sample</a>  • <a class="text-nowrap" href="command-line-options.html#sampling-factor">-sampling-factor</a>  • <a class="text-nowrap" href="command-line-options.html#scale">-scale</a>  • <a class="text-nowrap" href="command-line-options.html#scene">-scene</a>  • <a class="text-nowrap" href="command-line-options.html#screen">-screen</a>  • <a class="text-nowrap" href="command-line-options.html#seed">-seed</a>  • <a class="text-nowrap" href="command-line-options.html#segment">-segment</a>  • <a class="text-nowrap" href="command-line-options.html#selective-blur">-selective-blur</a>  • <a class="text-nowrap" href="command-line-options.html#separate">-separate</a>  • <a class="text-nowrap" href="command-line-options.html#sepia-tone">-sepia-tone</a>  • <a class="text-nowrap" href="command-line-options.html#set">-set</a>  • <a class="text-nowrap" href="command-line-options.html#shade">-shade</a>  • <a class="text-nowrap" href="command-line-options.html#shadow">-shadow</a>  • <a class="text-nowrap" href="command-line-options.html#shared-memory">-shared-memory</a>  • <a class="text-nowrap" href="command-line-options.html#sharpen">-sharpen</a>  • <a class="text-nowrap" href="command-line-options.html#shave">-shave</a>  • <a class="text-nowrap" href="command-line-options.html#shear">-shear</a>  • <a class="text-nowrap" href="command-line-options.html#sigmoidal-contrast">-sigmoidal-contrast</a>  • <a class="text-nowrap" href="command-line-options.html#silent">-silent</a>  • <a class="text-nowrap" href="command-line-options.html#similarity-threshold">-similarity-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#size">-size</a>  • <a class="text-nowrap" href="command-line-options.html#sketch">-sketch</a>  • <a class="text-nowrap" href="command-line-options.html#smush">-smush</a>  • <a class="text-nowrap" href="command-line-options.html#snaps">-snaps</a>  • <a class="text-nowrap" href="command-line-options.html#solarize">-solarize</a>  • <a class="text-nowrap" href="command-line-options.html#sparse-color">-sparse-color</a>  • <a class="text-nowrap" href="command-line-options.html#splice">-splice</a>  • <a class="text-nowrap" href="command-line-options.html#spread">-spread</a>  • <a class="text-nowrap" href="command-line-options.html#statistic">-statistic</a>  • <a class="text-nowrap" href="command-line-options.html#stegano">-stegano</a>  • <a class="text-nowrap" href="command-line-options.html#stereo">-stereo</a>  • <a class="text-nowrap" href="command-line-options.html#storage-type">-storage-type</a>  • <a class="text-nowrap" href="command-line-options.html#stretch">-stretch</a>  • <a class="text-nowrap" href="command-line-options.html#strip">-strip</a>  • <a class="text-nowrap" href="command-line-options.html#stroke">-stroke</a>  • <a class="text-nowrap" href="command-line-options.html#strokewidth">-strokewidth</a>  • <a class="text-nowrap" href="command-line-options.html#style">-style</a>  • <a class="text-nowrap" href="command-line-options.html#subimage-search">-subimage-search</a>  • <a class="text-nowrap" href="command-line-options.html#swap">-swap</a>  • <a class="text-nowrap" href="command-line-options.html#swirl">-swirl</a>  • <a class="text-nowrap" href="command-line-options.html#synchronize">-synchronize</a>  • <a class="text-nowrap" href="command-line-options.html#taint">-taint</a>  • <a class="text-nowrap" href="command-line-options.html#text-font">-text-font</a>  • <a class="text-nowrap" href="command-line-options.html#texture">-texture</a>  • <a class="text-nowrap" href="command-line-options.html#threshold">-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#thumbnail">-thumbnail</a>  • <a class="text-nowrap" href="command-line-options.html#tile">-tile</a>  • <a class="text-nowrap" href="command-line-options.html#tile-offset">-tile-offset</a>  • <a class="text-nowrap" href="command-line-options.html#tint">-tint</a>  • <a class="text-nowrap" href="command-line-options.html#title">-title</a>  • <a class="text-nowrap" href="command-line-options.html#transform">-transform</a>  • <a class="text-nowrap" href="command-line-options.html#transparent">-transparent</a>  • <a class="text-nowrap" href="command-line-options.html#transparent-color">-transparent-color</a>  • <a class="text-nowrap" href="command-line-options.html#transpose">-transpose</a>  • <a class="text-nowrap" href="command-line-options.html#transverse">-transverse</a>  • <a class="text-nowrap" href="command-line-options.html#treedepth">-treedepth</a>  • <a class="text-nowrap" href="command-line-options.html#trim">-trim</a>  • <a class="text-nowrap" href="command-line-options.html#type">-type</a>  • <a class="text-nowrap" href="command-line-options.html#undercolor">-undercolor</a>  • <a class="text-nowrap" href="command-line-options.html#unique-colors">-unique-colors</a>  • <a class="text-nowrap" href="command-line-options.html#units">-units</a>  • <a class="text-nowrap" href="command-line-options.html#unsharp">-unsharp</a>  • <a class="text-nowrap" href="command-line-options.html#update">-update</a>  • <a class="text-nowrap" href="command-line-options.html#verbose">-verbose</a>  • <a class="text-nowrap" href="command-line-options.html#version">-version</a>  • <a class="text-nowrap" href="command-line-options.html#view">-view</a>  • <a class="text-nowrap" href="command-line-options.html#vignette">-vignette</a>  • <a class="text-nowrap" href="command-line-options.html#virtual-pixel">-virtual-pixel</a>  • <a class="text-nowrap" href="command-line-options.html#visual">-visual</a>  • <a class="text-nowrap" href="command-line-options.html#watermark">-watermark</a>  • <a class="text-nowrap" href="command-line-options.html#wave">-wave</a>  • <a class="text-nowrap" href="command-line-options.html#wavelet-denoise">-wavelet-denoise</a>  • <a class="text-nowrap" href="command-line-options.html#weight">-weight</a>  • <a class="text-nowrap" href="command-line-options.html#white-balance">-white-balance</a>  • <a class="text-nowrap" href="command-line-options.html#white-point">-white-point</a>  • <a class="text-nowrap" href="command-line-options.html#white-threshold">-white-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#window">-window</a>  • <a class="text-nowrap" href="command-line-options.html#window-group">-window-group</a>  • <a class="text-nowrap" href="command-line-options.html#write">-write</a>  • <a class="text-nowrap" href="command-line-options.html#write-mask">-write-mask</a>  </p>
+<p class="text-center"><a class="text-nowrap" href="command-line-options.html#adaptive-blur">-adaptive-blur</a>  • <a class="text-nowrap" href="command-line-options.html#adaptive-resize">-adaptive-resize</a>  • <a class="text-nowrap" href="command-line-options.html#adaptive-sharpen">-adaptive-sharpen</a>  • <a class="text-nowrap" href="command-line-options.html#adjoin">-adjoin</a>  • <a class="text-nowrap" href="command-line-options.html#affine">-affine</a>  • <a class="text-nowrap" href="command-line-options.html#alpha">-alpha</a>  • <a class="text-nowrap" href="command-line-options.html#annotate">-annotate</a>  • <a class="text-nowrap" href="command-line-options.html#antialias">-antialias</a>  • <a class="text-nowrap" href="command-line-options.html#append">-append</a>  • <a class="text-nowrap" href="command-line-options.html#attenuate">-attenuate</a>  • <a class="text-nowrap" href="command-line-options.html#authenticate">-authenticate</a>  • <a class="text-nowrap" href="command-line-options.html#auto-gamma">-auto-gamma</a>  • <a class="text-nowrap" href="command-line-options.html#auto-level">-auto-level</a>  • <a class="text-nowrap" href="command-line-options.html#auto-orient">-auto-orient</a>  • <a class="text-nowrap" href="command-line-options.html#auto-threshold">-auto-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#backdrop">-backdrop</a>  • <a class="text-nowrap" href="command-line-options.html#background">-background</a>  • <a class="text-nowrap" href="command-line-options.html#bench">-bench</a>  • <a class="text-nowrap" href="command-line-options.html#bias">-bias</a>  • <a class="text-nowrap" href="command-line-options.html#bilateral-blur">-bilateral-blur</a>  • <a class="text-nowrap" href="command-line-options.html#black-point-compensation">-black-point-compensation</a>  • <a class="text-nowrap" href="command-line-options.html#black-threshold">-black-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#blend">-blend</a>  • <a class="text-nowrap" href="command-line-options.html#blue-primary">-blue-primary</a>  • <a class="text-nowrap" href="command-line-options.html#blue-shift">-blue-shift</a>  • <a class="text-nowrap" href="command-line-options.html#blur">-blur</a>  • <a class="text-nowrap" href="command-line-options.html#border">-border</a>  • <a class="text-nowrap" href="command-line-options.html#bordercolor">-bordercolor</a>  • <a class="text-nowrap" href="command-line-options.html#borderwidth">-borderwidth</a>  • <a class="text-nowrap" href="command-line-options.html#brightness-contrast">-brightness-contrast</a>  • <a class="text-nowrap" href="command-line-options.html#cache">-cache</a>  • <a class="text-nowrap" href="command-line-options.html#canny">-canny</a>  • <a class="text-nowrap" href="command-line-options.html#caption">-caption</a>  • <a class="text-nowrap" href="command-line-options.html#cdl">-cdl</a>  • <a class="text-nowrap" href="command-line-options.html#channel">-channel</a>  • <a class="text-nowrap" href="command-line-options.html#charcoal">-charcoal</a>  • <a class="text-nowrap" href="command-line-options.html#channel-fx">-channel-fx</a>  • <a class="text-nowrap" href="command-line-options.html#chop">-chop</a>  • <a class="text-nowrap" href="command-line-options.html#clahe">-clahe</a>  • <a class="text-nowrap" href="command-line-options.html#clamp">-clamp</a>  • <a class="text-nowrap" href="command-line-options.html#clip">-clip</a>  • <a class="text-nowrap" href="command-line-options.html#clip-mask">-clip-mask</a>  • <a class="text-nowrap" href="command-line-options.html#clip-path">-clip-path</a>  • <a class="text-nowrap" href="command-line-options.html#clone">-clone</a>  • <a class="text-nowrap" href="command-line-options.html#clut">-clut</a>  • <a class="text-nowrap" href="command-line-options.html#coalesce">-coalesce</a>  • <a class="text-nowrap" href="command-line-options.html#colorize">-colorize</a>  • <a class="text-nowrap" href="command-line-options.html#colormap">-colormap</a>  • <a class="text-nowrap" href="command-line-options.html#color-matrix">-color-matrix</a>  • <a class="text-nowrap" href="command-line-options.html#colors">-colors</a>  • <a class="text-nowrap" href="command-line-options.html#colorspace">-colorspace</a>  • <a class="text-nowrap" href="command-line-options.html#color-threshold">-color-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#combine">-combine</a>  • <a class="text-nowrap" href="command-line-options.html#comment">-comment</a>  • <a class="text-nowrap" href="command-line-options.html#compare">-compare</a>  • <a class="text-nowrap" href="command-line-options.html#complex">-complex</a>  • <a class="text-nowrap" href="command-line-options.html#compose">-compose</a>  • <a class="text-nowrap" href="command-line-options.html#composite">-composite</a>  • <a class="text-nowrap" href="command-line-options.html#compress">-compress</a>  • <a class="text-nowrap" href="command-line-options.html#connected-components">-connected-components</a>  • <a class="text-nowrap" href="command-line-options.html#contrast">-contrast</a>  • <a class="text-nowrap" href="command-line-options.html#contrast-stretch">-contrast-stretch</a>  • <a class="text-nowrap" href="command-line-options.html#convolve">-convolve</a>  • <a class="text-nowrap" href="command-line-options.html#copy">-copy</a>  • <a class="text-nowrap" href="command-line-options.html#crop">-crop</a>  • <a class="text-nowrap" href="command-line-options.html#cycle">-cycle</a>  • <a class="text-nowrap" href="command-line-options.html#debug">-debug</a>  • <a class="text-nowrap" href="command-line-options.html#decipher">-decipher</a>  • <a class="text-nowrap" href="command-line-options.html#deconstruct">-deconstruct</a>  • <a class="text-nowrap" href="command-line-options.html#define">-define</a>  • <a class="text-nowrap" href="command-line-options.html#delay">-delay</a>  • <a class="text-nowrap" href="command-line-options.html#delete">-delete</a>  • <a class="text-nowrap" href="command-line-options.html#density">-density</a>  • <a class="text-nowrap" href="command-line-options.html#depth">-depth</a>  • <a class="text-nowrap" href="command-line-options.html#descend">-descend</a>  • <a class="text-nowrap" href="command-line-options.html#deskew">-deskew</a>  • <a class="text-nowrap" href="command-line-options.html#despeckle">-despeckle</a>  • <a class="text-nowrap" href="command-line-options.html#direction">-direction</a>  • <a class="text-nowrap" href="command-line-options.html#displace">-displace</a>  • <a class="text-nowrap" href="command-line-options.html#display">-display</a>  • <a class="text-nowrap" href="command-line-options.html#dispose">-dispose</a>  • <a class="text-nowrap" href="command-line-options.html#dissimilarity-threshold">-dissimilarity-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#dissolve">-dissolve</a>  • <a class="text-nowrap" href="command-line-options.html#distort">-distort</a>  • <a class="text-nowrap" href="command-line-options.html#distribute-cache">-distribute-cache</a>  • <a class="text-nowrap" href="command-line-options.html#dither">-dither</a>  • <a class="text-nowrap" href="command-line-options.html#draw">-draw</a>  • <a class="text-nowrap" href="command-line-options.html#duplicate">-duplicate</a>  • <a class="text-nowrap" href="command-line-options.html#edge">-edge</a>  • <a class="text-nowrap" href="command-line-options.html#emboss">-emboss</a>  • <a class="text-nowrap" href="command-line-options.html#encipher">-encipher</a>  • <a class="text-nowrap" href="command-line-options.html#encoding">-encoding</a>  • <a class="text-nowrap" href="command-line-options.html#endian">-endian</a>  • <a class="text-nowrap" href="command-line-options.html#enhance">-enhance</a>  • <a class="text-nowrap" href="command-line-options.html#equalize">-equalize</a>  • <a class="text-nowrap" href="command-line-options.html#evaluate">-evaluate</a>  • <a class="text-nowrap" href="command-line-options.html#evaluate-sequence">-evaluate-sequence</a>  • <a class="text-nowrap" href="command-line-options.html#extent">-extent</a>  • <a class="text-nowrap" href="command-line-options.html#extract">-extract</a>  • <a class="text-nowrap" href="command-line-options.html#family">-family</a>  • <a class="text-nowrap" href="command-line-options.html#features">-features</a>  • <a class="text-nowrap" href="command-line-options.html#fft">-fft</a>  • <a class="text-nowrap" href="command-line-options.html#fill">-fill</a>  • <a class="text-nowrap" href="command-line-options.html#filter">-filter</a>  • <a class="text-nowrap" href="command-line-options.html#flatten">-flatten</a>  • <a class="text-nowrap" href="command-line-options.html#flip">-flip</a>  • <a class="text-nowrap" href="command-line-options.html#floodfill">-floodfill</a>  • <a class="text-nowrap" href="command-line-options.html#flop">-flop</a>  • <a class="text-nowrap" href="command-line-options.html#font">-font</a>  • <a class="text-nowrap" href="command-line-options.html#foreground">-foreground</a>  • <a class="text-nowrap" href="command-line-options.html#format">-format</a>  • <a class="text-nowrap" href="command-line-options.html#format_identify_">-format[identify]</a>  • <a class="text-nowrap" href="command-line-options.html#frame">-frame</a>  • <a class="text-nowrap" href="command-line-options.html#frame_import_">-frame[import]</a>  • <a class="text-nowrap" href="command-line-options.html#function">-function</a>  • <a class="text-nowrap" href="command-line-options.html#fuzz">-fuzz</a>  • <a class="text-nowrap" href="command-line-options.html#fx">-fx</a>  • <a class="text-nowrap" href="command-line-options.html#gamma">-gamma</a>  • <a class="text-nowrap" href="command-line-options.html#gaussian-blur">-gaussian-blur</a>  • <a class="text-nowrap" href="command-line-options.html#geometry">-geometry</a>  • <a class="text-nowrap" href="command-line-options.html#gravity">-gravity</a>  • <a class="text-nowrap" href="command-line-options.html#grayscale">-grayscale</a>  • <a class="text-nowrap" href="command-line-options.html#green-primary">-green-primary</a>  • <a class="text-nowrap" href="command-line-options.html#hald-clut">-hald-clut</a>  • <a class="text-nowrap" href="command-line-options.html#help">-help</a>  • <a class="text-nowrap" href="command-line-options.html#highlight-color">-highlight-color</a>  • <a class="text-nowrap" href="command-line-options.html#hough-lines">-hough-lines</a>  • <a class="text-nowrap" href="command-line-options.html#iconGeometry">-iconGeometry</a>  • <a class="text-nowrap" href="command-line-options.html#iconic">-iconic</a>  • <a class="text-nowrap" href="command-line-options.html#identify">-identify</a>  • <a class="text-nowrap" href="command-line-options.html#ift">-ift</a>  • <a class="text-nowrap" href="command-line-options.html#immutable">-immutable</a>  • <a class="text-nowrap" href="command-line-options.html#implode">-implode</a>  • <a class="text-nowrap" href="command-line-options.html#insert">-insert</a>  • <a class="text-nowrap" href="command-line-options.html#intensity">-intensity</a>  • <a class="text-nowrap" href="command-line-options.html#intent">-intent</a>  • <a class="text-nowrap" href="command-line-options.html#interlace">-interlace</a>  • <a class="text-nowrap" href="command-line-options.html#interpolate">-interpolate</a>  • <a class="text-nowrap" href="command-line-options.html#interline-spacing">-interline-spacing</a>  • <a class="text-nowrap" href="command-line-options.html#interword-spacing">-interword-spacing</a>  • <a class="text-nowrap" href="command-line-options.html#kerning">-kerning</a>  • <a class="text-nowrap" href="command-line-options.html#kmeans">-kmeans</a>  • <a class="text-nowrap" href="command-line-options.html#kuwahara">-kuwahara</a>  • <a class="text-nowrap" href="command-line-options.html#label">-label</a>  • <a class="text-nowrap" href="command-line-options.html#lat">-lat</a>  • <a class="text-nowrap" href="command-line-options.html#layers">-layers</a>  • <a class="text-nowrap" href="command-line-options.html#level">-level</a>  • <a class="text-nowrap" href="command-line-options.html#level-colors">-level-colors</a>  • <a class="text-nowrap" href="command-line-options.html#limit">-limit</a>  • <a class="text-nowrap" href="command-line-options.html#linear-stretch">-linear-stretch</a>  • <a class="text-nowrap" href="command-line-options.html#linewidth">-linewidth</a>  • <a class="text-nowrap" href="command-line-options.html#liquid-rescale">-liquid-rescale</a>  • <a class="text-nowrap" href="command-line-options.html#list">-list</a>  • <a class="text-nowrap" href="command-line-options.html#log">-log</a>  • <a class="text-nowrap" href="command-line-options.html#loop">-loop</a>  • <a class="text-nowrap" href="command-line-options.html#lowlight-color">-lowlight-color</a>  • <a class="text-nowrap" href="command-line-options.html#magnify">-magnify</a>  • <a class="text-nowrap" href="command-line-options.html#map">-map</a>  • <a class="text-nowrap" href="command-line-options.html#map_stream_">-map[stream]</a>  • <a class="text-nowrap" href="command-line-options.html#mattecolor">-mattecolor</a>  • <a class="text-nowrap" href="command-line-options.html#median">-median</a>  • <a class="text-nowrap" href="command-line-options.html#mean-shift">-mean-shift</a>  • <a class="text-nowrap" href="command-line-options.html#metric">-metric</a>  • <a class="text-nowrap" href="command-line-options.html#mode">-mode</a>  • <a class="text-nowrap" href="command-line-options.html#modulate">-modulate</a>  • <a class="text-nowrap" href="command-line-options.html#moments">-moments</a>  • <a class="text-nowrap" href="command-line-options.html#monitor">-monitor</a>  • <a class="text-nowrap" href="command-line-options.html#monochrome">-monochrome</a>  • <a class="text-nowrap" href="command-line-options.html#morph">-morph</a>  • <a class="text-nowrap" href="command-line-options.html#morphology">-morphology</a>  • <a class="text-nowrap" href="command-line-options.html#mosaic">-mosaic</a>  • <a class="text-nowrap" href="command-line-options.html#motion-blur">-motion-blur</a>  • <a class="text-nowrap" href="command-line-options.html#name">-name</a>  • <a class="text-nowrap" href="command-line-options.html#negate">-negate</a>  • <a class="text-nowrap" href="command-line-options.html#noise">-noise</a>  • <a class="text-nowrap" href="command-line-options.html#normalize">-normalize</a>  • <a class="text-nowrap" href="command-line-options.html#opaque">-opaque</a>  • <a class="text-nowrap" href="command-line-options.html#ordered-dither">-ordered-dither</a>  • <a class="text-nowrap" href="command-line-options.html#orient">-orient</a>  • <a class="text-nowrap" href="command-line-options.html#page">-page</a>  • <a class="text-nowrap" href="command-line-options.html#paint">-paint</a>  • <a class="text-nowrap" href="command-line-options.html#path">-path</a>  • <a class="text-nowrap" href="command-line-options.html#pause_animate_">-pause[animate]</a>  • <a class="text-nowrap" href="command-line-options.html#pause_import_">-pause[import]</a>  • <a class="text-nowrap" href="command-line-options.html#perceptible">-perceptible</a>  • <a class="text-nowrap" href="command-line-options.html#ping">-ping</a>  • <a class="text-nowrap" href="command-line-options.html#pointsize">-pointsize</a>  • <a class="text-nowrap" href="command-line-options.html#polaroid">-polaroid</a>  • <a class="text-nowrap" href="command-line-options.html#poly">-poly</a>  • <a class="text-nowrap" href="command-line-options.html#posterize">-posterize</a>  • <a class="text-nowrap" href="command-line-options.html#precision">-precision</a>  • <a class="text-nowrap" href="command-line-options.html#preview">-preview</a>  • <a class="text-nowrap" href="command-line-options.html#print">-print</a>  • <a class="text-nowrap" href="command-line-options.html#process">-process</a>  • <a class="text-nowrap" href="command-line-options.html#profile">-profile</a>  • <a class="text-nowrap" href="command-line-options.html#quality">-quality</a>  • <a class="text-nowrap" href="command-line-options.html#quantize">-quantize</a>  • <a class="text-nowrap" href="command-line-options.html#quiet">-quiet</a>  • <a class="text-nowrap" href="command-line-options.html#radial-blur">-radial-blur</a>  • <a class="text-nowrap" href="command-line-options.html#raise">-raise</a>  • <a class="text-nowrap" href="command-line-options.html#random-threshold">-random-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#range-threshold">-range-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#read-mask">-read-mask</a>  • <a class="text-nowrap" href="command-line-options.html#red-primary">-red-primary</a>  • <a class="text-nowrap" href="command-line-options.html#regard-warnings">-regard-warnings</a>  • <a class="text-nowrap" href="command-line-options.html#region">-region</a>  • <a class="text-nowrap" href="command-line-options.html#remap">-remap</a>  • <a class="text-nowrap" href="command-line-options.html#remote">-remote</a>  • <a class="text-nowrap" href="command-line-options.html#render">-render</a>  • <a class="text-nowrap" href="command-line-options.html#repage">-repage</a>  • <a class="text-nowrap" href="command-line-options.html#resample">-resample</a>  • <a class="text-nowrap" href="command-line-options.html#resize">-resize</a>  • <a class="text-nowrap" href="command-line-options.html#respect-parentheses">-respect-parentheses</a>  • <a class="text-nowrap" href="command-line-options.html#reverse">-reverse</a>  • <a class="text-nowrap" href="command-line-options.html#roll">-roll</a>  • <a class="text-nowrap" href="command-line-options.html#rotate">-rotate</a>  • <a class="text-nowrap" href="command-line-options.html#sample">-sample</a>  • <a class="text-nowrap" href="command-line-options.html#sampling-factor">-sampling-factor</a>  • <a class="text-nowrap" href="command-line-options.html#scale">-scale</a>  • <a class="text-nowrap" href="command-line-options.html#scene">-scene</a>  • <a class="text-nowrap" href="command-line-options.html#screen">-screen</a>  • <a class="text-nowrap" href="command-line-options.html#seed">-seed</a>  • <a class="text-nowrap" href="command-line-options.html#segment">-segment</a>  • <a class="text-nowrap" href="command-line-options.html#selective-blur">-selective-blur</a>  • <a class="text-nowrap" href="command-line-options.html#separate">-separate</a>  • <a class="text-nowrap" href="command-line-options.html#sepia-tone">-sepia-tone</a>  • <a class="text-nowrap" href="command-line-options.html#set">-set</a>  • <a class="text-nowrap" href="command-line-options.html#shade">-shade</a>  • <a class="text-nowrap" href="command-line-options.html#shadow">-shadow</a>  • <a class="text-nowrap" href="command-line-options.html#shared-memory">-shared-memory</a>  • <a class="text-nowrap" href="command-line-options.html#sharpen">-sharpen</a>  • <a class="text-nowrap" href="command-line-options.html#shave">-shave</a>  • <a class="text-nowrap" href="command-line-options.html#shear">-shear</a>  • <a class="text-nowrap" href="command-line-options.html#sigmoidal-contrast">-sigmoidal-contrast</a>  • <a class="text-nowrap" href="command-line-options.html#silent">-silent</a>  • <a class="text-nowrap" href="command-line-options.html#similarity-threshold">-similarity-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#size">-size</a>  • <a class="text-nowrap" href="command-line-options.html#sketch">-sketch</a>  • <a class="text-nowrap" href="command-line-options.html#smush">-smush</a>  • <a class="text-nowrap" href="command-line-options.html#snaps">-snaps</a>  • <a class="text-nowrap" href="command-line-options.html#solarize">-solarize</a>  • <a class="text-nowrap" href="command-line-options.html#sparse-color">-sparse-color</a>  • <a class="text-nowrap" href="command-line-options.html#splice">-splice</a>  • <a class="text-nowrap" href="command-line-options.html#spread">-spread</a>  • <a class="text-nowrap" href="command-line-options.html#statistic">-statistic</a>  • <a class="text-nowrap" href="command-line-options.html#stegano">-stegano</a>  • <a class="text-nowrap" href="command-line-options.html#stereo">-stereo</a>  • <a class="text-nowrap" href="command-line-options.html#storage-type">-storage-type</a>  • <a class="text-nowrap" href="command-line-options.html#stretch">-stretch</a>  • <a class="text-nowrap" href="command-line-options.html#strip">-strip</a>  • <a class="text-nowrap" href="command-line-options.html#stroke">-stroke</a>  • <a class="text-nowrap" href="command-line-options.html#strokewidth">-strokewidth</a>  • <a class="text-nowrap" href="command-line-options.html#style">-style</a>  • <a class="text-nowrap" href="command-line-options.html#subimage-search">-subimage-search</a>  • <a class="text-nowrap" href="command-line-options.html#swap">-swap</a>  • <a class="text-nowrap" href="command-line-options.html#swirl">-swirl</a>  • <a class="text-nowrap" href="command-line-options.html#synchronize">-synchronize</a>  • <a class="text-nowrap" href="command-line-options.html#taint">-taint</a>  • <a class="text-nowrap" href="command-line-options.html#text-font">-text-font</a>  • <a class="text-nowrap" href="command-line-options.html#texture">-texture</a>  • <a class="text-nowrap" href="command-line-options.html#threshold">-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#thumbnail">-thumbnail</a>  • <a class="text-nowrap" href="command-line-options.html#tile">-tile</a>  • <a class="text-nowrap" href="command-line-options.html#tile-offset">-tile-offset</a>  • <a class="text-nowrap" href="command-line-options.html#tint">-tint</a>  • <a class="text-nowrap" href="command-line-options.html#title">-title</a>  • <a class="text-nowrap" href="command-line-options.html#transform">-transform</a>  • <a class="text-nowrap" href="command-line-options.html#transparent">-transparent</a>  • <a class="text-nowrap" href="command-line-options.html#transparent-color">-transparent-color</a>  • <a class="text-nowrap" href="command-line-options.html#transpose">-transpose</a>  • <a class="text-nowrap" href="command-line-options.html#transverse">-transverse</a>  • <a class="text-nowrap" href="command-line-options.html#treedepth">-treedepth</a>  • <a class="text-nowrap" href="command-line-options.html#trim">-trim</a>  • <a class="text-nowrap" href="command-line-options.html#type">-type</a>  • <a class="text-nowrap" href="command-line-options.html#undercolor">-undercolor</a>  • <a class="text-nowrap" href="command-line-options.html#unique-colors">-unique-colors</a>  • <a class="text-nowrap" href="command-line-options.html#units">-units</a>  • <a class="text-nowrap" href="command-line-options.html#unsharp">-unsharp</a>  • <a class="text-nowrap" href="command-line-options.html#update">-update</a>  • <a class="text-nowrap" href="command-line-options.html#verbose">-verbose</a>  • <a class="text-nowrap" href="command-line-options.html#version">-version</a>  • <a class="text-nowrap" href="command-line-options.html#view">-view</a>  • <a class="text-nowrap" href="command-line-options.html#vignette">-vignette</a>  • <a class="text-nowrap" href="command-line-options.html#virtual-pixel">-virtual-pixel</a>  • <a class="text-nowrap" href="command-line-options.html#visual">-visual</a>  • <a class="text-nowrap" href="command-line-options.html#watermark">-watermark</a>  • <a class="text-nowrap" href="command-line-options.html#wave">-wave</a>  • <a class="text-nowrap" href="command-line-options.html#wavelet-denoise">-wavelet-denoise</a>  • <a class="text-nowrap" href="command-line-options.html#weight">-weight</a>  • <a class="text-nowrap" href="command-line-options.html#white-balance">-white-balance</a>  • <a class="text-nowrap" href="command-line-options.html#white-point">-white-point</a>  • <a class="text-nowrap" href="command-line-options.html#white-threshold">-white-threshold</a>  • <a class="text-nowrap" href="command-line-options.html#window">-window</a>  • <a class="text-nowrap" href="command-line-options.html#window-group">-window-group</a>  • <a class="text-nowrap" href="command-line-options.html#write">-write</a>  • <a class="text-nowrap" href="command-line-options.html#write-mask">-write-mask</a>  </p>
 <p class="lead magick-description">Below is list of command-line options recognized by the ImageMagick <a href="command-line-tools.html">command-line tools</a>. If you want a description of a particular option, click on the option name in the navigation bar above and you will go right to it. Unless otherwise noted, each option is recognized by the commands: <a href="convert.html">convert</a> and <a href="mogrify.html">mogrify</a>.</p>
 
 <div style="margin: auto;">
@@ -243,6 +243,7 @@
 <p>Used to set a flag on an image indicating whether or not to use existing alpha
 channel data, to create an alpha channel, or to perform other operations on the alpha channel.  Choose the argument <var>type</var> from the list below.</p>
 
+<div class="pre-scrollable">
 <dl class="row">
     <dt class="col-md-4">Activate</dt>
     <dd class="col-md-8">
@@ -317,16 +318,18 @@
        and thus can compress better.
        </dd>
 </dl>
+</div>
+<br/>
 
 <p>Note that while the obsolete <code>+matte</code> operation was the
 same as "<code><a href="command-line-options.html#alpha" >-alpha</a> Off</code>", the <code>
 >-matte</code> operation was the same as "<code><a href="command-line-options.html#alpha" >-alpha</a>
 Set</code>" and not "<code><a href="command-line-options.html#alpha" >-alpha</a> On</code>".  </p>
 
-<div style="margin: auto;">
+<div class="pre-scrollable" style="margin: auto;">
  <h3><a class="anchor" id="annotate"></a>
  -annotate <var>degrees</var> <var>text</var><br />
- -annotate <var>Xdegrees</var>x<var>Ydegrees</var> <var>text</var><br /> -annotate <var>Xdegrees</var>x<var>Ydegrees</var> {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var><br /> -annotate {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var></h3>
+ -annotate <var>Xdegrees</var>x<var>Ydegrees</var> <var>text</var><br /> -annotate <var>Xdegrees</var>x<var>Ydegrees</var>{+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var><br /> -annotate {+-}<var>t<sub>x</sub></var>{+-}<var>t<sub>y</sub></var> <var>text</var></h3>
 </div>
 
 <p class="magick-description">Annotate an image with text</p>
@@ -471,7 +474,7 @@
   <h3><a class="anchor" id="auto-orient"></a>-auto-orient</h3>
 </div>
 
-<p class="magick-description">adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).</p>
+<p class="magick-description">Adjusts an image so that its orientation is suitable for viewing (i.e. top-left orientation).</p>
 
 <p>This operator reads and resets the EXIF image profile setting 'Orientation'
 and then performs the appropriate 90 degree rotation on the image to orient
@@ -488,16 +491,18 @@
   <h3><a class="anchor" id="auto-threshold"></a>-auto-threshold <var>method</var></h3>
 </div>
 
-<p class="magick-description">automatically perform image thresholding.</p>
+<p class="magick-description">Automatically perform image thresholding.</p>
 
 <p>Here are the valid methods:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">Undefined</dt><dd class="col-md-8">0:  No method specified (equivalent to '<code>OTSU</code>').</dd>
 <dt class="col-md-4">Kapur</dt><dd class="col-md-8">maximum entropy thresholding.</dd>
 <dt class="col-md-4">OTSU</dt><dd class="col-md-8">cluster-based image thresholding.</dd>
 <dt class="col-md-4">Triangle</dt><dd class="col-md-8">a geometric thresholding method.</dd>
 </dl>
+</div>
 
 <p>The computed threshold is returned as the <kbd>auto-threshold:threshold</kbd> image property. To instead print to your device, use <kbd>-define auto-threshold:threshold=true</kbd>.</p>
 
@@ -582,6 +587,31 @@
 entry.  </p>
 
 <div style="margin: auto;">
+  <h3><a class="anchor" id="bilateral-blur"></a>-bilateral-blur <var>width</var>{x<var>height</var>}{<var>+intensity-sigma</var>}{<var>+spatial-sigma</var>}</h3>
+</div>
+
+<p class="magick-description">A non-linear, edge-preserving, and noise-reducing
+smoothing filter for images.  It replaces the intensity of each pixel with a
+weighted average of intensity values from nearby pixels. This weight is
+based on a Gaussian distribution.  The weights depend not only on Euclidean
+distance of pixels, but also on the radiometric differences (e.g., range
+differences, such as color intensity, depth distance, etc.). This preserves
+sharp edges.</p>
+
+<p>The intensity sigma is in the intensity space. A larger value means
+that farther colors within the pixel neighborhood (see spatial-sigma)
+will be mixed together, resulting in larger areas of semi-equal color.</p>
+
+<p>The spatial sigma is in the coordinate space. A larger value means that
+farther pixels influence each other as long as their colors are close
+enough (see intensity-sigma ). When the neigborhood diameter is greater
+than zero, it specifies the neighborhood size regardless of
+spatial-sigma. Otherwise, the neigborhood diameter is proportional to
+spatial-sigma.</p>
+<p>The default value for the intensity and spatial sigmas are <var>0.75*diameter</var> and <var>0.25*diameter</var> respectively.</p>
+
+
+<div style="margin: auto;">
   <h3><a class="anchor" id="black-point-compensation"></a>-black-point-compensation</h3>
 </div>
 
@@ -595,14 +625,14 @@
 
 <p> The threshold value can be given as a percentage or as an absolute integer
 value within [0, <var>QuantumRange</var>] corresponding to the
-desired <a class="text-nowrap" href="command-line-options.html#channel">-channel</a> value. See <a class="text-nowrap" href="command-line-options.html#threshold">-threshold</a>for more details on thresholds and resulting values.  </p>
+desired <a class="text-nowrap" href="command-line-options.html#channel">-channel</a> value. See <a class="text-nowrap" href="command-line-options.html#threshold">-threshold</a> for more details on thresholds and resulting values.  </p>
 
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="blend"></a>-blend <var>geometry</var></h3>
 </div>
 
-<p class="magick-description">blend an image into another by the given absolute value or percent.</p>
+<p class="magick-description">Blend an image into another by the given absolute value or percent.</p>
 
 <p>Blend will average the images together ('plus') according to the
 percentages given and each pixels transparency.  If only a single percentage
@@ -622,12 +652,12 @@
   <h3><a class="anchor" id="blue-shift"></a>-blue-shift <var>factor</var></h3>
 </div>
 
-<p class="magick-description">simulate a scene at nighttime in the moonlight.  Start with a factor of 1.5</p>
+<p class="magick-description">Simulate a scene at nighttime in the moonlight.  Start with a factor of 1.5</p>
 
 <div style="margin: auto;">
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="blur"></a>-blur <var>radius</var><br />-blur <var>radius</var>x<var>sigma</var></h3>
+  <h3><a class="anchor" id="blur"></a>-blur <var>radius</var><br />-blur <var>radius</var>{x<var>sigma</var>}</h3>
 </div>
 
 <p class="magick-description">Reduce image noise and reduce detail levels.</p>
@@ -674,6 +704,7 @@
 
 <p>As of IM 6.7.8-8, the <var>geometry</var> arguments behave as follows:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4"><var>value</var></dt>
 <dd class="col-md-8">value is added to both left/right and top/bottom</dd>
@@ -700,6 +731,7 @@
 <dt class="col-md-4">0%<code>x</code><var>value-y</var>%</dt>
 <dd class="col-md-8">value-y % of height is added to top/bottom and left/right are unchanged</dd>
 </dl>
+</div>
 
 <p>Set the border color by preceding with the <a
 href="command-line-options.html#bordercolor">-bordercolor</a> setting.</p>
@@ -775,12 +807,12 @@
 <p class="magick-description">(This option has been replaced by the <a href='command-line-options.html#limit'>-limit</a> option).</p>
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="canny"></a>-canny <var>radius</var><br/>-canny <var>radius</var>x<var>sigma</var>{<var>+lower-percent</var>}{<var>+upper-percent</var>}</h3>
+  <h3><a class="anchor" id="canny"></a>-canny <var>radius</var><br/>-canny <var>radius</var>{x<var>sigma</var>}{<var>+lower-percent</var>}{<var>+upper-percent</var>}</h3>
 </div>
 
 <p class="magick-description">Canny edge detector uses a multi-stage algorithm to detect a wide range of edges in the image.</p>
 
-<p>The thresholds range from 0 to 100% (e.g. -canny 0x1+10%+30%) with {<var>+lower-percent</var>} &lt; {<var>+upper-percent</var>}. If {<var>+upper-percent</var>} is increased but {<var>+lower-percent</var>} remains the same, lesser edge components will be detected, but their lengths will be the same. If {<var>+lower-percent</var>} is increased but {<var>+upper-percent</var>} is the same, the same number of edge components will be detected but their lengths will be shorter. The default thresholds are shown. The <var>radius</var>x<var>sigma</var> controls a gaussian blur applied to the input image to reduce noise and smooth the edges.</p>
+<p>The thresholds range from 0 to 100% (e.g. -canny 0x1+10%+30%) with {<var>+lower-percent</var>} &lt; {<var>+upper-percent</var>}. If {<var>+upper-percent</var>} is increased but {<var>+lower-percent</var>} remains the same, lesser edge components will be detected, but their lengths will be the same. If {<var>+lower-percent</var>} is increased but {<var>+upper-percent</var>} is the same, the same number of edge components will be detected but their lengths will be shorter. The default thresholds are shown. The <var>radius</var>{x<var>sigma</var>} controls a gaussian blur applied to the input image to reduce noise and smooth the edges.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="caption"></a>-caption <var>string</var></h3>
@@ -819,7 +851,7 @@
   <h3><a class="anchor" id="cdl"></a>-cdl <var>filename</var></h3>
 </div>
 
-<p class="magick-description">color correct with a color decision list.</p>
+<p class="magick-description">Color correct with a color decision list.</p>
 
 <p>Here is an example color correction collection:</p>
 
@@ -856,29 +888,29 @@
 '<code>M</code>', '<code>Y</code>', '<code>K</code>'.</p>
 
 <p>The numerals 0 to 31 may also be used to specify channels, where 0 to 5 are: <br />
+<ul>
 '<code>0</code>' equals <code>Red</code> or <code>Cyan</code> <br />
 '<code>1</code>' equals <code>Green</code> or <code>Magenta</code> <br />
 '<code>2</code>' equals <code>Blue</code> or <code>Yellow</code> <br />
 '<code>3</code>' equals <code>Black</code> <br />
 '<code>4</code>' equals <code>Alpha</code> or <code>Opacity</code> <br />
 '<code>5</code>' equals <code>Index</code></p>
+</ul>
 
 <p>For example, to only select the <code>Red</code> and <code>Blue</code> channels
 you can use any of the following:</p>
-<pre class="highlight">
+<ul><pre class="highlight">
 <code>-channel Red,Blue</code>
 <code>-channel R,B</code>
 <code>-channel RB</code>
 <code>-channel 0,2</code>
-</pre>
+</pre></ul>
 
 <p>All the channels that are present in an image can be specified using the
 special channel type <code>All</code>. Not all operators are 'channel capable',
 but generally any operators that are generally 'grey-scale' image operators,
 will understand this setting.  See individual operator documentation. </p>
 
-<br/>
-
 <p>On top of the normal channel selection an extra flag can be specified,
 '<code>Sync</code>'.  This is turned on by default and if set means that
 operators that understand this flag should perform: cross-channel
@@ -978,7 +1010,7 @@
   <h3><a class="anchor" id="channel-fx"></a>-channel-fx <var>expression</var></h3>
 </div>
 
-<p class="magick-description">exchange, extract, or copy one or more image channels.</p>
+<p class="magick-description">Exchange, extract, or copy one or more image channels.</p>
 
 <p>The expression consists of one or more channels, either mnemonic or numeric (e.g. red or 0, green or 1, etc.), separated by certain operation symbols as follows:</p>
 
@@ -1041,7 +1073,7 @@
   <h3><a class="anchor" id="clahe"></a>-clahe <var>width</var>x<var>height</var>{%}{+}<var>number-bins</var>{+}<var>clip-limit</var>{!}</h3>
 </div>
 
-<p class="magick-description">contrast limited adaptive histogram equalization.</p>
+<p class="magick-description">Contrast limited adaptive histogram equalization.</p>
 <p> The image is divided into tiles of <var>width</var> and <var>height</var> pixels.  Append <code>%</code> to define the width and height as percentages of the image's dimensions. The tile size should be larger than the size of features to be preserved and respects the aspect ratio of the image.  Add <code>!</code> to force an exact tile width and height. <var>number-bins</var> is the number of histogram bins per tile (min 2, max 65536).  The number of histogram bins should be smaller than the number of pixels in a single tile. <var>clip-limit</var> is the contrast limit for localized changes in contrast. A clip-limit of 2 to 3 is a good starting place (e.g. -clahe 50x50%+128+3).  Very large values will let the histogram equalization do whatever it wants to do, that is result in maximal local contrast. The value 1 will result in the original image.  Note, if the number of bins and the clip-limit are ommitted, they default to 128 and no clipping respectively.</p>
 
 
@@ -1049,7 +1081,7 @@
   <h3><a class="anchor" id="clamp"></a>-clamp</h3>
 </div>
 
-<p class="magick-description">set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.</p>
+<p class="magick-description">Set each pixel whose value is below zero to zero and any the pixel whose value is above the quantum range to the quantum range (e.g. 65535) otherwise the pixel value remains unchanged.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="clip"></a>-clip</h3>
@@ -1103,7 +1135,7 @@
   <h3><a class="anchor" id="clone"></a>-clone <var>index(s)</var></h3>
 </div>
 
-<p class="magick-description">make a clone of an image (or images).</p>
+<p class="magick-description">Make a clone of an image (or images).</p>
 
 <p>Inside parenthesis (where the operator is normally used) it will make a
 clone of the images from the last 'pushed' image sequence, and adds them to
@@ -1235,7 +1267,7 @@
   <h3><a class="anchor" id="color-matrix"></a>-color-matrix <var>matrix</var></h3>
 </div>
 
-<p class="magick-description">apply color correction to the image.</p>
+<p class="magick-description">Apply color correction to the image.</p>
 
 <p>This option permits saturation changes, hue rotation, luminance to alpha,
 and various other effects.  Although variable-sized transformation matrices
@@ -1277,6 +1309,7 @@
 
 <p>For a more accurate color conversion to or from the linear RGB, CMYK, or grayscale colorspaces, use the <a href="command-line-options.html#profile">-profile</a> option.  Note, ImageMagick assumes the sRGB colorspace if the image format does not indicate otherwise.  For colorspace conversion, the gamma function is first removed to produce linear RGB.</p>
 
+<div class="pre-scrollable">
 <table class="table table-sm table-hover">
         <caption>Conversion of RGB to Other Color Spaces</caption>
         <tr><th valign="middle">CMY</th></tr>
@@ -1374,6 +1407,7 @@
         <tr><td valign="middle">U=(−0.14740*R−0.28950*G+0.43690*B)*(<var>QuantumRange</var>+1)/2</td></tr>
         <tr><td valign="middle">V=(0.61500*R−0.51500*G−0.10000*B)*(<var>QuantumRange</var>+1)/2</td></tr>
 </table>
+</div>
 
 <p>Note the scRGB colorspace requires HDRI support otherwise it behaves just like linear RGB.</p>
 
@@ -1444,7 +1478,7 @@
   <h3><a class="anchor" id="compare"></a>-compare</h3>
 </div>
 
-<p class="magick-description">mathematically and visually annotate the difference between an image and its reconstruction</p>
+<p class="magick-description">Mathematically and visually annotate the difference between an image and its reconstruction</p>
 
 <p>This is a convert version of "<code>compare</code>" for two same sized images. The syntax is as follows, but other metrics are allowed.</p>
 
@@ -1461,7 +1495,7 @@
   <h3><a class="anchor" id="complex"></a>-complex <var>operator</var></h3>
 </div>
 
-<p class="magick-description">perform complex mathematics on an image sequence</p>
+<p class="magick-description">Perform complex mathematics on an image sequence</p>
 
 Choose from these operators:
 
@@ -1663,7 +1697,7 @@
   <h3><a class="anchor" id="copy"></a>-copy <var>geometry</var> <var>offset</var></h3>
 </div>
 
-<p class="magick-description">copy pixels from one area of an image to another.</p>
+<p class="magick-description">Copy pixels from one area of an image to another.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="crop"></a>-crop <var>geometry</var>{<var>@</var>}{<var>!</var>}</h3>
@@ -1721,7 +1755,7 @@
   <h3><a class="anchor" id="cycle"></a>-cycle <var>amount</var></h3>
 </div>
 
-<p class="magick-description">displace image colormap by amount.</p>
+<p class="magick-description">Displace image colormap by amount.</p>
 
 <p><var>Amount</var> defines the number of positions each
 colormap entry is shifted.</p>
@@ -1731,7 +1765,7 @@
   <h3><a class="anchor" id="debug"></a>-debug <var>events</var></h3>
 </div>
 
-<p class="magick-description">enable debug printout.</p>
+<p class="magick-description">Enable debug printout.</p>
 
 <p>The <code>events</code> parameter specifies which events are to be logged. It
 can be either <code>None</code>, <code>All</code>, <code>Trace</code>, or
@@ -1781,7 +1815,7 @@
   <h3><a class="anchor" id="deconstruct"></a>-deconstruct</h3>
 </div>
 
-<p class="magick-description">find areas that has changed between images </p>
+<p class="magick-description">Find areas that has changed between images </p>
 
 <p>Given a sequence of images all the same size, such as produced by <a
 href="command-line-options.html#coalesce">-coalesce</a>, replace the second and later images, with
@@ -1800,7 +1834,7 @@
   <h3><a class="anchor" id="define"></a>-define <var>key</var>{<var>=value</var>}<var>...</var></h3>
 </div>
 
-<p class="magick-description">add specific global settings generally used to control coders and image processing operations.</p>
+<p class="magick-description">Add specific global settings generally used to control coders and image processing operations.</p>
 
 <p>This option creates one or more definitions for coders and decoders to use
 while reading and writing image data.  Definitions are generally used to
@@ -1841,7 +1875,7 @@
   <h3><a class="anchor" id="delay"></a>-delay <var>ticks</var> <br />-delay <var>ticks</var>x<var>ticks-per-second</var> {<var>&lt;</var>} {<var>&gt;</var>}</h3>
 </div>
 
-<p class="magick-description">display the next image after pausing.</p>
+<p class="magick-description">Display the next image after pausing.</p>
 
 <p>This option is useful for regulating the animation of image sequences
 <var>ticks/ticks-per-second</var> seconds must expire before the display of the
@@ -1862,7 +1896,7 @@
   <h3><a class="anchor" id="delete"></a>-delete <var>indexes</var></h3>
 </div>
 
-<p class="magick-description">delete the images specified by index, from the image sequence.</p>
+<p class="magick-description">Delete the images specified by index, from the image sequence.</p>
 
 <p>Specify the image by its index in the sequence.  The first image is index
 0.  Negative indexes are relative to the end of the sequence, for example, -1
@@ -1909,7 +1943,7 @@
   <h3><a class="anchor" id="depth"></a>-depth <var>value</var></h3>
 </div>
 
-<p class="magick-description">depth of the image.</p>
+<p class="magick-description">Depth of the image.</p>
 
 <p>This the number of bits in a color sample within a pixel.  Use this option
 to specify the depth of raw images whose depth is unknown such as GRAY, RGB,
@@ -1921,13 +1955,13 @@
   <h3><a class="anchor" id="descend"></a>-descend</h3>
 </div>
 
-<p class="magick-description">obtain image by descending window hierarchy.</p>
+<p class="magick-description">Obtain image by descending window hierarchy.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="deskew"></a>-deskew <var>threshold{%}</var></h3>
 </div>
 
-<p class="magick-description">straighten an image.  A threshold of 40% works for most images.</p>
+<p class="magick-description">Straighten an image.  A threshold of 40% works for most images.</p>
 
 <p>Use <a href="command-line-options.html#set">-set</a> <code>option:deskew:auto-crop
 <var>true | false</var></code> to auto crop the image.</p>
@@ -1936,19 +1970,19 @@
   <h3><a class="anchor" id="despeckle"></a>-despeckle</h3>
 </div>
 
-<p class="magick-description">reduce the speckles within an image.</p>
+<p class="magick-description">Reduce the speckles within an image.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="direction"></a>-direction <var>type</var></h3>
 </div>
 
-<p class="magick-description">render text right-to-left or left-to-right.  Requires the <a href="https://github.com/HOST-Oman/libraqm">RAQM</a> delegate library and <a href="https://en.wikipedia.org/wiki/Complex_text_layout">complex text layout</a>.</p>
+<p class="magick-description">Render text right-to-left or left-to-right.  Requires the <a href="https://github.com/HOST-Oman/libraqm">RAQM</a> delegate library and <a href="https://en.wikipedia.org/wiki/Complex_text_layout">complex text layout</a>.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="displace"></a>-displace <var>horizontal-scale</var>{%}{!}<br />-displace <var>horizontal-scale</var>x<var>vertical-scale</var>{%}{!}</h3>
 </div>
 
-<p class="magick-description">shift image pixels as defined by a displacement map.</p>
+<p class="magick-description">Shift image pixels as defined by a displacement map.</p>
 
 <p>With this option, the 'overlay' image, and optionally the 'mask' image,
 is used as a displacement map, which is used to displace the lookup of
@@ -2017,7 +2051,7 @@
   <h3><a class="anchor" id="dispose"></a>-dispose <var>method</var></h3>
 </div>
 
-<p class="magick-description">define the GIF disposal image setting for images that are being created or read in. </p>
+<p class="magick-description">Define the GIF disposal image setting for images that are being created or read in. </p>
 
 <p>The layer disposal method defines the way each the displayed image is to be
 modified after the current 'frame' of an animation has finished being
@@ -2026,12 +2060,14 @@
 
 <p>Here are the valid methods:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">Undefined</dt><dd class="col-md-8">0:  No disposal specified (equivalent to '<code>none</code>').</dd>
 <dt class="col-md-4">None</dt><dd class="col-md-8">1:  Do not dispose, just overlay next frame image.</dd>
 <dt class="col-md-4">Background</dt><dd class="col-md-8">2:  Clear the frame area with the background color.</dd>
 <dt class="col-md-4">Previous</dt><dd class="col-md-8">3:  Clear to the image prior to this frames overlay.</dd>
 </dl>
+</div>
 
 <p>You can also use the numbers given above, which is what the GIF format
 uses internally to represent the above settings. </p>
@@ -2048,14 +2084,14 @@
   <h3><a class="anchor" id="dissimilarity-threshold"></a>-dissimilarity-threshold <var>value</var></h3>
 </div>
 
-<p class="magick-description">maximum RMSE for subimage match (default 0.2).</p>
+<p class="magick-description">Maximum RMSE for subimage match (default 0.2).</p>
 
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="dissolve"></a>-dissolve <var>src_percent</var>[x<var>dst_percent</var>]</h3>
 </div>
 
-<p class="magick-description">dissolve an image into another by the given percent.</p>
+<p class="magick-description">Dissolve an image into another by the given percent.</p>
 
 <p>The opacity of the composite image is multiplied by the given percent, then
 it is composited 'over' the main image.  If <var>src_percent</var>
@@ -2071,7 +2107,7 @@
   <h3><a class="anchor" id="distort"></a>-distort <var>method arguments</var></h3>
 </div>
 
-<p class="magick-description">distort an image, using the given <var>method</var> and its required <var>arguments</var>.</p>
+<p class="magick-description">Distort an image, using the given <var>method</var> and its required <var>arguments</var>.</p>
 
 <p>The <var>arguments</var> is a single string containing a list
 of floating point numbers separated by commas or spaces.  The number of
@@ -2079,6 +2115,7 @@
 
 <p>Choose from these distortion types:</p>
 
+<div class="pre-scrollable">
 <table class="table table-sm table-hover">
   <tr>
     <th style="width: 8%">Method</th>
@@ -2370,6 +2407,7 @@
   </tr>
 
 </table>
+</div>
 
 <p>To print a complete list of distortion methods, use <a href="command-line-options.html#list">-list
 distort</a>.</p>
@@ -2474,7 +2512,7 @@
   <h3><a class="anchor" id="distribute-cache"></a>-distribute-cache <var>port</var></h3>
 </div>
 
-<p class="magick-description">launch a distributed pixel cache server. </p>
+<p class="magick-description">Launch a distributed pixel cache server. </p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="dither"></a>-dither <var>method</var></h3>
@@ -2524,6 +2562,7 @@
 
 <p>The shape primitives:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">point</dt><dd class="col-md-8">          x,y</dd>
 <dt class="col-md-4">line</dt><dd class="col-md-8">           x0,y0 x1,y1</dd>
@@ -2538,6 +2577,7 @@
 <dt class="col-md-4">path</dt><dd class="col-md-8">specification  </dd>
 <dt class="col-md-4">image</dt><dd class="col-md-8">          operator x0,y0 w,h filename</dd>
 </dl>
+</div>
 
 <p>The text primitive:</p>
 
@@ -2557,6 +2597,7 @@
 
 <p>The transformation primitives:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">rotate</dt><dd class="col-md-8">degrees</dd>
 <dt class="col-md-4">translate</dt><dd class="col-md-8">dx,dy</dd>
@@ -2564,13 +2605,16 @@
 <dt class="col-md-4">skewX</dt><dd class="col-md-8">degrees</dd>
 <dt class="col-md-4">skewY</dt><dd class="col-md-8">degrees</dd>
 </dl>
+</div>
 
 <p>The pixel operation primitives:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">color</dt><dd class="col-md-8">x0,y0 method</dd>
 <dt class="col-md-4">matte</dt><dd class="col-md-8">x0,y0 method</dd>
 </dl>
+</div>
 
 <p>The shape primitives are drawn in the color specified by the preceding <a
 href="command-line-options.html#fill">-fill</a> setting.  For unfilled shapes, use <a
@@ -2674,14 +2718,15 @@
 <p>For example, the following annotates the image with <code>Works like
 magick!</code> for an image titled <code>bird.miff</code>. </p>
 
-<pre class="highlight"><code>-draw "text 100,100 'Works like magick!' "
-</code></pre>
+<pre class="highlight"><code>-draw "text 100,100 'Works like magick!'"</code></pre>
 
 <p>See the <a href="command-line-options.html#annotate">-annotate</a> option for another convenient way
 to annotate an image with text.</p>
 
 <p>The <code>rotate</code> primitive rotates subsequent shape primitives and
-text primitives about the origin of the main image.</p>
+text primitives about the origin of the main image:</p>
+
+<pre class="highlight"><code>-draw "rotate 45 text 10,10 'Works like magick!'"</code></pre>
 
 <p>The <code>translate</code> primitive translates subsequent shape and text
 primitives.</p>
@@ -2746,7 +2791,7 @@
   <h3><a class="anchor" id="duplicate"></a>-duplicate <var>count,indexes</var></h3>
 </div>
 
-<p class="magick-description">duplicate an image one or more times.</p>
+<p class="magick-description">Duplicate an image one or more times.</p>
 
 <p>Specify the count and the image to duplicate by its index in the sequence.
 The first image is index 0.  Negative indexes are relative to the end of the
@@ -2759,13 +2804,13 @@
   <h3><a class="anchor" id="edge"></a>-edge <var>radius</var></h3>
 </div>
 
-<p class="magick-description">detect edges within an image.</p>
+<p class="magick-description">Detect edges within an image.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="emboss"></a>-emboss <var>radius</var></h3>
 </div>
 
-<p class="magick-description">emboss an image.</p>
+<p class="magick-description">Emboss an image.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="encipher"></a>-encipher <var>filename</var></h3>
@@ -2784,7 +2829,7 @@
   <h3><a class="anchor" id="encoding"></a>-encoding <var>type</var></h3>
 </div>
 
-<p class="magick-description">specify the text encoding.</p>
+<p class="magick-description">Specify the text encoding.</p>
 
 <p>Choose from</p>
 
@@ -2818,7 +2863,7 @@
   <h3><a class="anchor" id="equalize"></a>-equalize</h3>
 </div>
 
-<p class="magick-description">perform histogram equalization on the image channel-by-channel.</p>
+<p class="magick-description">Perform histogram equalization on the image channel-by-channel.</p>
 
 <p>To perform histogram equalization on all channels in concert, transform the
 image into some other color space, such as HSL, OHTA, YIQ or YUV, then
@@ -2850,6 +2895,7 @@
 normalized pixels are used, they are restored, following the other
 calculations, to the full range by multiplying by <var>QuantumRange</var>.)</p>
 
+<div class="pre-scrollable">
 <table class="table table-sm table-hover">
   <col width="25%" />
   <col width="75%" />
@@ -2903,6 +2949,7 @@
    <tr><td>ThresholdWhite </td>  <td>Threshold pixels to maximum values above <var>value</var>.  </td></tr>
  </tbody>
  </table>
+</div>
 
 <p>The specified functions are applied only to each previously set <a
 href="command-line-options.html#channel" >-channel</a> in the image. If necessary, the results of the
@@ -3055,7 +3102,7 @@
   <h3><a class="anchor" id="features"></a>-features <var>distance</var></h3>
 </div>
 
-<p class="magick-description">display (co-occurrence matrix) texture measure features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance.</p>
+<p class="magick-description">Display (co-occurrence matrix) texture measure features for each channel in the image in each of four directions (horizontal, vertical, left and right diagonals) for the specified distance.</p>
 
 <pre class="highlight"><code>Angular Second Moment       Sum Entropy
 Contrast                    Entropy
@@ -3070,7 +3117,7 @@
   <h3><a class="anchor" id="fft"></a>-fft</h3>
 </div>
 
-<p class="magick-description">implements the forward discrete Fourier transform (DFT).</p>
+<p class="magick-description">Implements the forward discrete Fourier transform (DFT).</p>
 
 <p>This option is new as of ImageMagick 6.5.4-3 (and now working for Windows
 users in ImageMagick 6.6.0-9). It transforms an image from the normal
@@ -3178,7 +3225,7 @@
   <h3><a class="anchor" id="fill"></a>-fill <var>color</var></h3>
 </div>
 
-<p class="magick-description">color to use when filling a graphic primitive.</p>
+<p class="magick-description">Color to use when filling a graphic primitive.</p>
 
 <p>This option accepts a color name, a hex color, or a numerical RGB, RGBA,
 HSL, HSLA, CMYK, or CMYKA specification.  See <a href="color.html" >Color Names</a> for
@@ -3248,6 +3295,7 @@
 use of these expert settings (see also <a href="command-line-options.html#define" >-define</a> and <a
 href="command-line-options.html#set" >-set</a>):-</p>
 
+<div class="pre-scrollable">
 <table class="table table-sm table-hover">
   <tr>
     <td>-define filter:blur=<var>factor</var></td>
@@ -3360,6 +3408,7 @@
   </tr>
 
 </table>
+</div>
 
 <p>For example, to get a 8 lobe jinc windowed sinc filter (Genseng filter?):</p>
 
@@ -3410,7 +3459,7 @@
   <h3><a class="anchor" id="flip"></a>-flip</h3>
 </div>
 
-<p class="magick-description">create a <var>mirror image</var></p>
+<p class="magick-description">Create a <var>mirror image</var></p>
 
 <p>reflect the scanlines in the vertical direction. The image will be mirrored
 upside-down. </p>
@@ -3420,7 +3469,7 @@
   <h3><a class="anchor" id="floodfill"></a>-floodfill {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var> <var>color</var></h3>
 </div>
 
-<p class="magick-description">floodfill the image with color at the specified offset.</p>
+<p class="magick-description">Floodfill the image with color at the specified offset.</p>
 
 <p>Flood fill starts from the given 'seed point' which is not gravity affected.
 Any color that matches within <a href="command-line-options.html#fuzz" >-fuzz</a> color distance of the
@@ -3441,7 +3490,7 @@
   <h3><a class="anchor" id="flop"></a>-flop</h3>
 </div>
 
-<p class="magick-description">create a <var>mirror image</var>.</p>
+<p class="magick-description">Create a <var>mirror image</var>.</p>
 
 <p>Reflect the scanlines in the horizontal direction, just like the image in
 a vertical mirror. </p>
@@ -3451,7 +3500,7 @@
   <h3><a class="anchor" id="font"></a>-font <var>name</var></h3>
 </div>
 
-<p class="magick-description">set the font to use when annotating images with text, or creating labels.</p>
+<p class="magick-description">Set the font to use when annotating images with text, or creating labels.</p>
 
 <p>To print a complete list of fonts, use the <a href="command-line-options.html#list">-list font</a>
 option (for versions prior to 6.3.6, use 'type' instead of 'font').</p>
@@ -3481,7 +3530,7 @@
   <h3><a class="anchor" id="format"></a>-format <var>type</var></h3>
 </div>
 
-<p class="magick-description">the image format type.</p>
+<p class="magick-description">The image format type.</p>
 
 <p>When used with the <code>mogrify</code> utility, this option converts any
 image to the image <a href="formats.html">format</a> you specify.
@@ -3499,7 +3548,7 @@
   <h3><a class="anchor" id="format_identify_"></a>-format <var>string</var></h3>
 </div>
 
-<p class="magick-description">output formatted image characteristics.</p>
+<p class="magick-description">Output formatted image characteristics.</p>
 
 <p>See <a href="escape.html">Format and Print Image
 Properties</a> for an explanation on how to specify the argument to this
@@ -3541,7 +3590,7 @@
   <h3><a class="anchor" id="frame_import_"></a>-frame</h3>
 </div>
 
-<p class="magick-description">include the X window frame in the imported image. </p>
+<p class="magick-description">Include the X window frame in the imported image. </p>
 <div style="margin: auto;">
   <h3><a class="anchor" id="function"></a>-function <var>function</var> <var>parameters</var></h3>
 </div>
@@ -3570,6 +3619,7 @@
 <p>To print a complete list of <a href="command-line-options.html#function">-function</a> operators,
 use <a href="command-line-options.html#list">-list function</a>. Descriptions follow.</p>
 
+<div class="pre-scrollable">
 <dl class="row">
   <dt class="col-md-4">Polynomial</dt>
   <dd class="col-md-8"><p>The <code>Polynomial</code> function takes an arbitrary number of parameters,
@@ -3593,6 +3643,7 @@
 href="command-line-options.html#level">-level</a> operator also affects channels linearly. Some
 correspondences follow.</p>
 
+<div class="pre-scrollable">
 <table class="table table-sm table-hover">
   <tr>
         <td>-evaluate Set <var>value</var> </td>
@@ -3617,6 +3668,7 @@
         <td>(Reduce contrast. Here, A=(white-black)/100 and  B=black/100.)</td>
   </tr>
 </table>
+</div>
 
 <p>The <code>Polynomial</code> function gives great versatility, since
 polynomials can be used to fit any continuous curve to any degree of accuracy
@@ -3654,6 +3706,7 @@
 <code>Cos</code> of the <a href="command-line-options.html#evaluate">-evaluate</a> operator by allowing
 varying amplitude, phase and bias. The correspondence is as follows.</p>
 
+<div class="pre-scrollable">
 <table class="table table-sm table-hover">
   <tr>
         <td>-evaluate Sin <var>freq</var> </td>
@@ -3664,6 +3717,7 @@
         <td>-function Sinusoid <var>freq</var>,90 </td>
   </tr>
 </table>
+</div>
   </dd>
 <dt class="col-md-4">ArcSin</dt>
 <dd class="col-md-8">
@@ -3699,6 +3753,7 @@
 </code></pre>
   </dd>
 </dl>
+</div>
 
 
 
@@ -3726,7 +3781,7 @@
   <h3><a class="anchor" id="fx"></a>-fx <var>expression</var></h3>
 </div>
 
-<p class="magick-description">apply a mathematical expression to an image or image channels.</p>
+<p class="magick-description">Apply a mathematical expression to an image or image channels.</p>
 
 <p>If the first character of <var>expression</var> is <code>@</code>,
 the expression is read from a file titled by the remaining characters in the
@@ -3741,7 +3796,7 @@
   <h3><a class="anchor" id="gamma"></a>-gamma <var>value</var></h3>
 </div>
 
-<p class="magick-description">level of gamma correction.</p>
+<p class="magick-description">Level of gamma correction.</p>
 
 <p>The same color image displayed on two different workstations may look
 different due to differences in the display monitor. Use gamma correction to
@@ -3771,7 +3826,7 @@
 <p>Note that gamma adjustments are also available via the <a href="command-line-options.html#level">-level</a> operator.</p>
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="gaussian-blur"></a>-gaussian-blur <var>radius</var><br />-gaussian-blur <var>radius</var>x<var>sigma</var></h3>
+  <h3><a class="anchor" id="gaussian-blur"></a>-gaussian-blur <var>radius</var><br />-gaussian-blur <var>radius</var>{x<var>sigma</var>}</h3>
 </div>
 
 <p class="magick-description">Blur the image with a Gaussian operator.</p>
@@ -3871,7 +3926,7 @@
   <h3><a class="anchor" id="grayscale"></a>-grayscale <var>method</var></h3>
 </div>
 
-<p class="magick-description">convert image to grayscale.</p>
+<p class="magick-description">Convert image to grayscale.</p>
 
 <p>This will use one of the <a href="command-line-options.html#intensity" >-intensity</a> methods to
 convert the given image into a grayscale image. </p>
@@ -3889,8 +3944,6 @@
 <code>magick in.png -colorspace LinearGray out.png</code>
 </pre>
 
-<p>Note that LinearGray is new as of Imagemagick 6.9.9-29 and 7.0.7-17.</p>
-
 <p>Similarly, to convert an image to (non-linear) Rec709Luma grayscale,  type:</p>
 
 <pre class="highlight"><code>magick in.png -grayscale Rec709Luma out.png
@@ -3915,14 +3968,14 @@
   <h3><a class="anchor" id="green-primary"></a>-green-primary <var>x,y</var></h3>
 </div>
 
-<p class="magick-description">green chromaticity primary point.</p>
+<p class="magick-description">Green chromaticity primary point.</p>
 
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="hald-clut"></a>-hald-clut</h3>
 </div>
 
-<p class="magick-description">apply a Hald color lookup table to the image.</p>
+<p class="magick-description">Apply a Hald color lookup table to the image.</p>
 
 <p>A Hald color lookup table is a 3-dimensional color cube mapped to 2
 dimensions.  Create it with the <code>HALD:</code> prefix (e.g. HALD:8).  You
@@ -3952,19 +4005,19 @@
   <h3><a class="anchor" id="help"></a>-help</h3>
 </div>
 
-<p class="magick-description">print usage instructions.</p>
+<p class="magick-description">Print usage instructions.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="highlight-color"></a>-highlight-color <var>color</var></h3>
 </div>
 
-<p class="magick-description">when comparing images, emphasize pixel differences with this color.</p>
+<p class="magick-description">When comparing images, emphasize pixel differences with this color.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="hough-lines"></a>-hough-lines <var>width</var>x<var>height</var>{<var>+threshold</var>}</h3>
 </div>
 
-<p class="magick-description">identify straight lines in the image (e.g. -hough-lines 9x9+195).</p>
+<p class="magick-description">Identify straight lines in the image (e.g. -hough-lines 9x9+195).</p>
 
 <p>Use the Hough line detector with any binary edge extracted image to locate and draw any straight lines that it finds.</p>
 
@@ -3986,7 +4039,7 @@
   <h3><a class="anchor" id="iconGeometry"></a>-iconGeometry <var>geometry</var></h3>
 </div>
 
-<p class="magick-description">specify the icon geometry.</p>
+<p class="magick-description">Specify the icon geometry.</p>
 
 <p>Offsets, if present in the geometry specification, are handled in the same
 manner as the <a href="command-line-options.html#geometry">-geometry</a> option, using X11 style to
@@ -3998,13 +4051,13 @@
   <h3><a class="anchor" id="iconic"></a>-iconic</h3>
 </div>
 
-<p class="magick-description">start in icon mode in X Windows", 'animate', 'display</p>
+<p class="magick-description">Start in icon mode in X Windows", 'animate', 'display</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="identify"></a>-identify</h3>
 </div>
 
-<p class="magick-description">identify the format and characteristics of the image.</p>
+<p class="magick-description">Identify the format and characteristics of the image.</p>
 
 <p>This information is printed: image scene number; image name; image size;
 the image class (<var>DirectClass</var> or <var>PseudoClass</var>); the total number of unique colors; and the
@@ -4024,7 +4077,7 @@
   <h3><a class="anchor" id="ift"></a>-ift</h3>
 </div>
 
-<p class="magick-description">implements the inverse discrete Fourier transform (DFT).</p>
+<p class="magick-description">Implements the inverse discrete Fourier transform (DFT).</p>
 
 <p>This option is new as of ImageMagick 6.5.4-3 (and now working for Windows
 users in ImageMagick 6.6.0-9). It transforms a pair of magnitude and phase
@@ -4063,19 +4116,19 @@
   <h3><a class="anchor" id="immutable"></a>-immutable</h3>
 </div>
 
-<p class="magick-description">make image immutable.</p>
+<p class="magick-description">Make image immutable.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="implode"></a>-implode <var>factor</var></h3>
 </div>
 
-<p class="magick-description">implode image pixels about the center.</p>
+<p class="magick-description">Implode image pixels about the center.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="insert"></a>-insert <var>index</var></h3>
 </div>
 
-<p class="magick-description">insert the last image into the image sequence.</p>
+<p class="magick-description">Insert the last image into the image sequence.</p>
 
 <p>This option takes last image in the current image sequence and inserts it
 at the given index. If a negative index is used, the insert position is
@@ -4090,7 +4143,7 @@
   <h3><a class="anchor" id="intensity"></a>-intensity <var>method</var></h3>
 </div>
 
-<p class="magick-description">method to generate intensity value from pixel.</p>
+<p class="magick-description">Method to generate intensity value from pixel.</p>
 
 <p>ImageMagick provides a number of methods used in situations where an
 operator needs to determine a single grayscale value for some purpose, from
@@ -4101,6 +4154,7 @@
 the pixel values to linear-RGB or non-linear sRGB colorspace before
 being applied to calculate the final greyscale value. </p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">Rec601Luma</dt><dd class="col-md-8">      0.298839R' + 0.586811G'+ 0.114350B'</dd>
 <dt class="col-md-4">Rec601Luminance</dt><dd class="col-md-8"> 0.298839R + 0.586811G + 0.114350B</dd>
@@ -4109,6 +4163,7 @@
 <dt class="col-md-4">Brightness</dt><dd class="col-md-8">      max(R', G', B')</dd>
 <dt class="col-md-4">Lightness</dt><dd class="col-md-8">       (min(R', G', B') + max(R', G', B')) / 2.0</dd>
 </dl>
+</div>
 
 <p>Note that the above R,G,B values is the image's linear-RGB values, while
 R',G',B' are sRGB non-linear values. </p>
@@ -4117,11 +4172,13 @@
 current value in the images respective R,G,B channel regardless of
 what that is, or what colorspace the image is currently using.</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">Average</dt><dd class="col-md-8">(R' + G' + B') / 3.0</dd>
 <dt class="col-md-4">MS</dt><dd class="col-md-8">(R'^2 + G'^2 + B'^2) / 3.0</dd>
 <dt class="col-md-4">RMS</dt><dd class="col-md-8">sqrt( (R'^2 + G'^2 + B'^2) / 3.0 )</dd>
 </dl>
+</div>
 
 <p>These methods are often used for other purposes, such as generating a
 grayscale difference image between two color images (using <a href="command-line-options.html#compose"
@@ -4168,7 +4225,7 @@
   <h3><a class="anchor" id="intent"></a>-intent <var>type</var></h3>
 </div>
 
-<p class="magick-description">use this type of rendering intent when managing the image color.</p>
+<p class="magick-description">Use this type of rendering intent when managing the image color.</p>
 
 <p>Use this option to affect the color management operation of an image (see
 <a href="command-line-options.html#profile">-profile</a>).  Choose from these intents: <code>Absolute,
@@ -4182,7 +4239,7 @@
   <h3><a class="anchor" id="interlace"></a>-interlace <var>type</var></h3>
 </div>
 
-<p class="magick-description">the type of interlacing scheme.</p>
+<p class="magick-description">The type of interlacing scheme.</p>
 
 <p>Choose from:</p>
 
@@ -4225,6 +4282,7 @@
 the pixels surrounding that point.  That is how to determine the color of a
 point that falls between two, or even four different colored pixels. </p>
 
+<div class="pre-scrollable">
 <dl class="row">
   <dt class="col-md-4">average</dt>
   <dd class="col-md-8">The average color of the surrounding four pixels</dd>
@@ -4251,6 +4309,7 @@
   <dt class="col-md-4">spline</dt>
   <dd class="col-md-8">Direct spline curves (colors are blurred)</dd>
 </dl>
+</div>
 
 <p>This most important for distortion operators such as <a href="command-line-options.html#distort"
 >-distort</a>, <a href="command-line-options.html#implode" >-implode</a>, <a href="command-line-options.html#transform"
@@ -4266,19 +4325,19 @@
   <h3><a class="anchor" id="interline-spacing"></a>-interline-spacing <var>value</var></h3>
 </div>
 
-<p class="magick-description">the space between two text lines.</p>
+<p class="magick-description">The space between two text lines.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="interword-spacing"></a>-interword-spacing <var>value</var></h3>
 </div>
 
-<p class="magick-description">the space between two words.</p>
+<p class="magick-description">The space between two words.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="kerning"></a>-kerning <var>value</var></h3>
 </div>
 
-<p class="magick-description">the space between two letters.</p>
+<p class="magick-description">The space between two letters.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="kmeans"></a>-kmeans <var>colors</var>{x<var>iterations</var>}{+<var>tolerance</var>}</h3>
@@ -4287,10 +4346,10 @@
 <p class="magick-description">Kmeans (iterative) color reduction (e.g. <code>-kmeans 5x100+0.01</code>). Colors is the desired number of colors. Initial colors are found using color quantization. Iterations is the stopping number of iterations (default=100). Convergence is the stopping threshold on the color change between iterations (default=0.01). Processing finishes, if either iterations or tolerance are reached. Use <code>-define kmeans:seed-colors=<var>color-list</var></code> to initialize the colors, where color-list is a semicolon delimited list of seed colors (e.g. <code>-define kmeans:seed-colors="red;sRGB(19,167,254);#00ffff</code>). A color list overrides the color quantization. A non-empty list of colors overrides the number of colors. Any unassigned initial colors are assigned  random colors from the image.</p>
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="kuwahara"></a>-kuwahara <var>radius</var><br />-kuwahara <var>radius</var>x<var>sigma</var></h3>
+  <h3><a class="anchor" id="kuwahara"></a>-kuwahara <var>radius</var><br />-kuwahara <var>radius</var>{x<var>sigma</var>}</h3>
 </div>
 
-<p class="magick-description">edge preserving noise reduction filter.</p>
+<p class="magick-description">Edge preserving noise reduction filter.</p>
 
 <p>The <var >radius</var> is more important than the <var >sigma</var>. If <var >sigma</var> is left off, it will be computed automatically from the <var >radius</var> as <var >sigma</var>=<var >radius</var>-0.5. The <var >sigma</var> provides a bit of additional smoothing control.</p>
 
@@ -4299,7 +4358,7 @@
   <h3><a class="anchor" id="label"></a>-label <var>name</var></h3>
 </div>
 
-<p class="magick-description">assign a label to an image.</p>
+<p class="magick-description">Assign a label to an image.</p>
 
 <p>Use this option to assign a specific label to the image, as it is read in
 or created.  You can use the <a href="command-line-options.html#set" >-set</a> operation to re-assign
@@ -4339,7 +4398,7 @@
   <h3><a class="anchor" id="lat"></a>-lat <var>width</var><br />-lat <var>width</var>x<var>height</var>{<var>+-</var>}<var>offset</var>{<var>%</var>}</h3>
 </div>
 
-<p class="magick-description">perform local adaptive threshold.</p>
+<p class="magick-description">Perform local adaptive threshold.</p>
 
 <p>Adaptively threshold each pixel based on the value of pixels in a
 surrounding window.  If the current pixel is lighter than this average plus
@@ -4357,12 +4416,13 @@
   <h3><a class="anchor" id="layers"></a>-layers <var>method</var></h3>
 </div>
 
-<p class="magick-description">handle multiple images forming a set of image layers or animation frames.</p>
+<p class="magick-description">Handle multiple images forming a set of image layers or animation frames.</p>
 
 <p>Perform various image operation methods to a ordered sequence of images
 which may represent either a set of overlaid 'image layers', a GIF disposal
 animation, or a fully-'coalesced' animation sequence. </p>
 
+<div class="pre-scrollable">
 <table class="table table-sm table-hover">
   <tbody>
   <tr>
@@ -4613,6 +4673,7 @@
 
   </tbody>
 </table>
+</div>
 
 <p>To print a complete list of layer types, use <a href="command-line-options.html#list">-list layers</a>.</p>
 
@@ -4629,7 +4690,7 @@
   <h3><a class="anchor" id="level"></a>-level <var>black_point</var>{,<var>white_point</var>}{<var>%</var>}{,<var>gamma</var>}</h3>
 </div>
 
-<p class="magick-description">adjust the level of image channels.</p>
+<p class="magick-description">Adjust the level of image channels.</p>
 
 <p>Given one, two or three values delimited with commas: black-point,
 white-point, gamma (for example: 10,250,1.0 or 2%,98%,0.5). The black and
@@ -4667,7 +4728,7 @@
   <h3><a class="anchor" id="level-colors"></a>-level-colors {<var>black_color</var>}{,}{<var>white_color</var>}</h3>
 </div>
 
-<p class="magick-description">adjust the level of an image using the provided dash separated colors.</p>
+<p class="magick-description">Adjust the level of an image using the provided dash separated colors.</p>
 
 <p>This function is exactly like <a href="command-line-options.html#level">-level</a>, except that the
 value for each color channel is determined by the
@@ -4826,13 +4887,13 @@
   <h3><a class="anchor" id="linewidth"></a>-linewidth</h3>
 </div>
 
-<p class="magick-description">the line width for subsequent draw operations.</p>
+<p class="magick-description">The line width for subsequent draw operations.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="liquid-rescale"></a>-liquid-rescale <var>geometry</var></h3>
 </div>
 
-<p class="magick-description">rescale image with seam-carving.</p>
+<p class="magick-description">Rescale image with seam-carving.</p>
 
 <p>See <a href="command-line-processing.html#geometry">Image Geometry</a> for complete details about the <em class="arg">geometry</em> argument.</p>
 
@@ -4919,7 +4980,7 @@
 list</code>" to get a complete listing of all the "<code>-list</code>" arguments
 available:</p>
 
-<pre class="highlight"><code>identify -list list
+<pre class="highlight"><code>magick identify -list list
 </code></pre>
 
 <div style="margin: auto;">
@@ -4934,6 +4995,7 @@
 <p>You can display the following components by embedding special format
 characters:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">%d</dt><dd class="col-md-8">domain</dd>
 <dt class="col-md-4">%e</dt><dd class="col-md-8">event</dd>
@@ -4948,6 +5010,7 @@
 <dt class="col-md-4">\n</dt><dd class="col-md-8">newline</dd>
 <dt class="col-md-4">\r</dt><dd class="col-md-8">carriage return</dd>
 </dl>
+</div>
 
 <p>For example:</p>
 
@@ -4960,7 +5023,7 @@
   <h3><a class="anchor" id="loop"></a>-loop <var>iterations</var></h3>
 </div>
 
-<p class="magick-description">add Netscape loop extension to your GIF animation.</p>
+<p class="magick-description">Add Netscape loop extension to your GIF animation.</p>
 
 <p>Set iterations to zero to repeat the animation an infinite number of times,
 otherwise the animation repeats itself up to <var>iterations</var>
@@ -4970,13 +5033,13 @@
   <h3><a class="anchor" id="lowlight-color"></a>-lowlight-color <var>color</var></h3>
 </div>
 
-<p class="magick-description">when comparing images, de-emphasize pixel differences with this color.</p>
+<p class="magick-description">When comparing images, de-emphasize pixel differences with this color.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="magnify"></a>-magnify</h3>
 </div>
 
-<p class="magick-description">double or triple the size of the image with pixel art scaling. Specify an alternative scaling method with <code>-define magnify:method=<var>method</var></code> Choose from these methods: <code>eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X,  scale2X, scale3X, xbr2X</code>.  The default is scale2X.</p>
+<p class="magick-description">Double or triple the size of the image with pixel art scaling. Specify an alternative scaling method with <code>-define magnify:method=<var>method</var></code> Choose from these methods: <code>eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X,  scale2X, scale3X, xbr2X</code>.  The default is scale2X.</p>
 
 
 <div style="margin: auto;">
@@ -5005,10 +5068,11 @@
   <h3><a class="anchor" id="map_stream_"></a>-map <var>components</var></h3>
 </div>
 
-<p class="magick-description">pixel map.</p>
+<p class="magick-description">Pixel map.</p>
 
 <p>Here are the valid components of a map:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">r</dt><dd class="col-md-8">  red pixel component</dd>
 <dt class="col-md-4">g</dt><dd class="col-md-8">  green pixel component</dd>
@@ -5022,6 +5086,7 @@
 <dt class="col-md-4">k</dt><dd class="col-md-8">  black pixel component</dd>
 <dt class="col-md-4">p</dt><dd class="col-md-8">  pad component (always 0)</dd>
 </dl>
+</div>
 
 <p>You can specify as many of these components as needed in any order (e.g.
 bgr).  The components can repeat as well (e.g. rgbr).</p>
@@ -5042,7 +5107,7 @@
   <h3><a class="anchor" id="maximum"></a>-maximum</h3>
 </div>
 
-<p class="magick-description">return the maximum intensity of an image sequence.</p>
+<p class="magick-description">Return the maximum intensity of an image sequence.</p>
 
 <p>Select the 'maximum' value from all the surrounding pixels. </p>
 
@@ -5053,7 +5118,7 @@
   <h3><a class="anchor" id="median"></a>-median <var>geometry</var></h3>
 </div>
 
-<p class="magick-description">apply a median filter to the image.</p>
+<p class="magick-description">Apply a median filter to the image.</p>
 
 <p>Select the 'middle' value from all the surrounding pixels. </p>
 
@@ -5064,7 +5129,7 @@
   <h3><a class="anchor" id="mean-shift"></a>-mean-shift <var>width</var>x<var>height</var>{<var>+distance</var>{%}</h3>
 </div>
 
-<p class="magick-description">image noise removal and color reduction/segmentation (e.g. -mean-shift 7x7+10%).</p>
+<p class="magick-description">Image noise removal and color reduction/segmentation (e.g. -mean-shift 7x7+10%).</p>
 
 <p><var>width</var>x<var>height</var> is the window size and <var>distance</var> is the color distance measured in the range 0 to 1 or 0 to 100%</p>
 
@@ -5078,6 +5143,7 @@
 
 <p>Choose from:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">AE</dt><dd class="col-md-8">    absolute error count, number of different pixels (-fuzz affected)</dd>
 <dt class="col-md-4">DSSIM</dt><dd class="col-md-8">  structural dissimilarity index</dd>
@@ -5092,6 +5158,7 @@
 <dt class="col-md-4">RMSE</dt><dd class="col-md-8">  root mean squared (normalized root mean squared)</dd>
 <dt class="col-md-4">SSIM</dt><dd class="col-md-8">  structural similarity index</dd>
 </dl>
+</div>
 
 <p>Control the '<code>AE</code>', or absolute count of pixels that are different,
 with the <a href="command-line-options.html#fuzz" >-fuzz</a> factor (ignore pixels which
@@ -5116,7 +5183,7 @@
   <h3><a class="anchor" id="minimum"></a>-minimum</h3>
 </div>
 
-<p class="magick-description">return the minimum intensity of an image sequence.</p>
+<p class="magick-description">Return the minimum intensity of an image sequence.</p>
 
 <p>Select the 'minimal' value from all the surrounding pixels. </p>
 
@@ -5129,7 +5196,7 @@
   <h3><a class="anchor" id="mode"></a>-mode <var>geometry</var></h3>
 </div>
 
-<p class="magick-description">make each pixel the \'predominant color\' of the neighborhood.'</p>
+<p class="magick-description">Make each pixel the \'predominant color\' of the neighborhood.'</p>
 
 <div style="margin: auto;">
   <h3>-mode <var>value</var></h3>
@@ -5185,27 +5252,27 @@
   <h3><a class="anchor" id="moments"></a>-moments</h3>
 </div>
 
-<p class="magick-description">report image moments and perceptual hash.</p>
+<p class="magick-description">Report image moments and perceptual hash.</p>
 
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="monitor"></a>-monitor</h3>
 </div>
 
-<p class="magick-description">monitor progress.</p>
+<p class="magick-description">Monitor progress.</p>
 
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="monochrome"></a>-monochrome</h3>
 </div>
 
-<p class="magick-description">transform the image to black and white.</p>
+<p class="magick-description">Transform the image to black and white.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="morph"></a>-morph <var>frames</var></h3>
 </div>
 
-<p class="magick-description">morphs an image sequence.</p>
+<p class="magick-description">Morphs an image sequence.</p>
 
 <p>Both the image pixels and size are linearly interpolated to give the
 appearance of a metamorphosis from one image to the next, over all the images
@@ -5219,25 +5286,23 @@
   <h3>-morphology <var>method</var>  <var>kernel</var></h3>
 </div>
 
-<p class="magick-description">apply a morphology method to the image.</p>
+<p class="magick-description">Apply a morphology method to the image.</p>
 
-<p>Until I get around to writing an option summary for this, see <a
-href="https://legacy.imagemagick.org/Usage/morphology/" >IM Usage Examples,
-Morphology</a>. </p>
+<p>See <a href="https://legacy.imagemagick.org/Usage/morphology/" >IM Usage Examples, Morphology</a>. </p>
 
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="mosaic"></a>-mosaic</h3>
 </div>
 
-<p class="magick-description">an simple alias for the <a href="command-line-options.html#layers" >-layers</a> method "mosaic"</p>
+<p class="magick-description">An simple alias for the <a href="command-line-options.html#layers" >-layers</a> method "mosaic"</p>
 
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="motion-blur"></a>-motion-blur <var>radius</var><br />-motion-blur <var>radius</var>x<var>sigma</var>+<var>angle</var></h3>
+  <h3><a class="anchor" id="motion-blur"></a>-motion-blur <var>radius</var><br />-motion-blur <var>radius</var>{x<var>sigma</var>}+<var>angle</var></h3>
 </div>
 
-<p class="magick-description">simulate motion blur.</p>
+<p class="magick-description">Simulate motion blur.</p>
 
 <p>Blur with the given radius, standard deviation (sigma), and angle.   The
 angle given is the angle toward which the image is blurred.  That is the
@@ -5254,12 +5319,12 @@
   <h3><a class="anchor" id="name"></a>-name</h3>
 </div>
 
-<p class="magick-description">name an image.</p>
+<p class="magick-description">Name an image.</p>
 <div style="margin: auto;">
   <h3><a class="anchor" id="negate"></a>-negate</h3>
 </div>
 
-<p class="magick-description">replace each pixel with its complementary color.</p>
+<p class="magick-description">Replace each pixel with its complementary color.</p>
 
 <p>The red, green, and blue intensities of an image are negated. White becomes
 black, yellow becomes blue, etc.  Use <a href="command-line-options.html#negate">+negate</a> to only
@@ -5340,7 +5405,7 @@
   <h3><a class="anchor" id="opaque"></a>-opaque <var>color</var></h3>
 </div>
 
-<p class="magick-description">change this color to the fill color within the image.</p>
+<p class="magick-description">Change this color to the fill color within the image.</p>
 
 <p>The <var>color</var> argument is defined using the format
 described under the <a href="command-line-options.html#fill" >-fill</a> option.  The <a href="command-line-options.html#fuzz"
@@ -5363,7 +5428,7 @@
   <h3><a class="anchor" id="ordered-dither"></a>-ordered-dither <var>threshold_map</var>{,<var>level</var>...}</h3>
 </div>
 
-<p class="magick-description">dither the image using a pre-defined  ordered dither <var>threshold map</var> specified, and a uniform color map with the
+<p class="magick-description">Dither the image using a pre-defined  ordered dither <var>threshold map</var> specified, and a uniform color map with the
 given number of <var>levels</var> per color channel.</p>
 
 <p>You can choose from these standard threshold maps:</p>
@@ -5422,7 +5487,7 @@
   <h3><a class="anchor" id="orient"></a>-orient <var>image orientation</var></h3>
 </div>
 
-<p class="magick-description">specify orientation of a digital camera image.</p>
+<p class="magick-description">Specify orientation of a digital camera image.</p>
 
 <p>Choose from these orientations:</p>
 
@@ -5454,7 +5519,7 @@
 
 <p>Use <var>media</var> as shorthand to specify the dimensions (<var>width</var>x<var>height</var>) of the <var>PostScript</var> page in dots per inch or a TEXT page in pixels.
 The choices for paper sizes are: <code>4x6</code>, <code>5x7</code>, <code>7x9</code>, <code>8x10</code>, <code>9x11</code>, <code>9x12</code>, <code>10x13</code>, <code>10x14</code>, <code>11x17</code>, <code>4A0</code>, <code>2A0</code>, <code>a0</code>, <code>a1</code>, <code>a2</code>, <code>a3</code>, <code>a4</code>, <code>a4small</code>, <code>a5</code>, <code>a6</code>, <code>a7</code>, <code>a8</code>, <code>a9</code>, <code>a10</code>, <code>archa</code>, <code>archb</code>, <code>archC</code>, <code>archd</code>, <code>arche</code>, <code>b0</code>, <code>b1</code>, <code>b10</code>, <code>b2</code>, <code>b3</code>, <code>b4</code>, <code>b5</code>, <code>b6</code>, <code>b7</code>, <code>b8</code>, <code>b9</code>, <code>c0</code>, <code>c1</code>, <code>c2</code>, <code>c3</code>, <code>c4</code>, <code>c5</code>, <code>c6</code>, <code>c7</code>, <code>csheet</code>, <code>dsheet</code>, <code>esheet</code>, <code>executive</code>, <code>flsa</code>, <code>flse</code>, <code>folio</code>, <code>halfletter</code>, <code>isob0</code>, <code>isob1</code>, <code>isob10</code>, <code>isob2</code>, <code>isob3</code>, <code>isob4</code>, <code>isob5</code>, <code>isob6</code>, <code>isob7</code>, <code>isob8</code>, <code>isob9</code>, <code>jisb0</code>, <code>jisb1</code>, <code>jisb2</code>, <code>jisb3</code>, <code>jisb4</code>, <code>jisb5</code>, <code>jisb6</code>, <code>ledger</code>, <code>legal</code>, <code>letter</code>, <code>lettersmall</code>, <code>monarch</code>, <code>quarto</code>, <code>statement</code>, <code>tabloid</code>. To determine the cooresponding size in pixels at 72DPI, use this command for example:</p>
-<pre class="highlight"><code>convert xc: -format "%[papersize:a4]" info:</code></pre>
+<pre class="highlight"><code>magick xc: -format "%[papersize:a4]" info:</code></pre>
 
 <p>This option is also used to place subimages when writing to a multi-image
 format that supports offsets, such as GIF89 and MNG. When used for this
@@ -5487,7 +5552,7 @@
   <h3><a class="anchor" id="paint"></a>-paint <var>radius</var></h3>
 </div>
 
-<p class="magick-description">simulate an oil painting.</p>
+<p class="magick-description">Simulate an oil painting.</p>
 
 <p>Each pixel is replaced by the most frequent color in a circular
 neighborhood whose width is specified with <var>radius</var>.</p>
@@ -5495,7 +5560,7 @@
 <div style="margin: auto;">
   <h3><a class="anchor" id="path"></a>-path <var>path</var></h3></div>
 
-<p class="magick-description">write images to this path on disk.</p>
+<p class="magick-description">Write images to this path on disk.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="pause_animate_"></a>-pause <var>seconds</var></h3>
@@ -5517,25 +5582,25 @@
   <h3><a class="anchor" id="perceptible"></a>-perceptible <var>epsilon</var></h3>
 </div>
 
-<p class="magick-description">set each pixel whose value is less than |<var>epsilon</var>| to <var>-epsilon</var> or <var>epsilon</var> (whichever is closer) otherwise the pixel value remains unchanged.</p>
+<p class="magick-description">Set each pixel whose value is less than |<var>epsilon</var>| to <var>-epsilon</var> or <var>epsilon</var> (whichever is closer) otherwise the pixel value remains unchanged.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="ping"></a>-ping</h3>
 </div>
 
-<p class="magick-description">efficiently determine these image characteristics: image number, the file name, the width and height of the image, whether the image is colormapped or not, the number of colors in the image, the number of bytes in the image, the format of the image (JPEG, PNM, etc.).  Use <code>+ping</code> to ensure accurate image properties.</p>
+<p class="magick-description">Efficiently determine these image characteristics: image number, the file name, the width and height of the image, whether the image is colormapped or not, the number of colors in the image, the number of bytes in the image, the format of the image (JPEG, PNM, etc.).  Use <code>+ping</code> to ensure accurate image properties.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="pointsize"></a>-pointsize <var>value</var></h3>
 </div>
 
-<p class="magick-description">pointsize of the PostScript, OPTION1, or TrueType font.</p>
+<p class="magick-description">Pointsize of the PostScript, OPTION1, or TrueType font.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="polaroid"></a>-polaroid <var>angle</var></h3>
 </div>
 
-<p class="magick-description">simulate a Polaroid picture.</p>
+<p class="magick-description">Simulate a Polaroid picture.</p>
 
 <p>Use <code>+polaroid</code> to rotate the image at a random angle between -15 and +15 degrees.</p>
 
@@ -5543,7 +5608,7 @@
   <h3><a class="anchor" id="poly"></a>-poly <var>"wt,exp ..."</var></h3>
 </div>
 
-<p class="magick-description">combines multiple images according to a weighted sum of polynomials; one floating point weight (coefficient) and one floating point polynomial exponent (power) for each image expressed as comma separated pairs.</p>
+<p class="magick-description">Combines multiple images according to a weighted sum of polynomials; one floating point weight (coefficient) and one floating point polynomial exponent (power) for each image expressed as comma separated pairs.</p>
 
 <p> The weights should typically be fractions between -1 and 1. But the sum of weights should be 1 or at least between 0 and 1 to avoid clamping in non-hdri mode at black and white.</p>
 
@@ -5566,7 +5631,7 @@
   <h3><a class="anchor" id="posterize"></a>-posterize <var>levels</var></h3>
 </div>
 
-<p class="magick-description">reduce the image to a limited number of color levels per channel.</p>
+<p class="magick-description">Reduce the image to a limited number of color levels per channel.</p>
 
 <p>Very low values of <var>levels</var>, e.g., 2, 3, 4, have the most
 visible effect.</p>
@@ -5575,13 +5640,13 @@
   <h3><a class="anchor" id="precision"></a>-precision <var>value</var></h3>
 </div>
 
-<p class="magick-description">set the maximum number of significant digits to be printed.</p>
+<p class="magick-description">Set the maximum number of significant digits to be printed.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="preview"></a>-preview <var>type</var></h3>
 </div>
 
-<p class="magick-description">image preview type.</p>
+<p class="magick-description">Image preview type.</p>
 
 <p>Use this option to affect the preview operation of an image (e.g.
 <code>magick file.png -preview Gamma Preview:gamma.png</code>). Choose from
@@ -5627,13 +5692,13 @@
   <h3><a class="anchor" id="print"></a>-print <var>string</var></h3>
 </div>
 
-<p class="magick-description">interpret string and print to console.</p>
+<p class="magick-description">Interpret string and print to console.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="process"></a>-process <var>command</var></h3>
 </div>
 
-<p class="magick-description">process the image with a custom image filter.</p>
+<p class="magick-description">Process the image with a custom image filter.</p>
 
 <p>The command arguments has the form <code>"module arg1 arg2 arg3 ...
 argN"</code> where <code>module</code> is the name of the module to invoke (e.g.
@@ -5657,7 +5722,7 @@
 remove all profiles from the image except for the XMP profile:  <code>+profile
 "!xmp,*"</code>. </p>
 
-<p>Use <code>identify -verbose</code> to find out which profiles are in the
+<p>Use <code>magick identify -verbose</code> to find out which profiles are in the
 image file. Use <a href="command-line-options.html#strip">-strip</a> to remove all profiles (and
 comments).</p>
 
@@ -5720,6 +5785,7 @@
 <p>If filter-type is 4 or less, the specified PNG filter-type is used for
 all scanlines:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">0</dt><dd class="col-md-8">none</dd>
 <dt class="col-md-4">1</dt><dd class="col-md-8">sub</dd>
@@ -5727,6 +5793,7 @@
 <dt class="col-md-4">3</dt><dd class="col-md-8">average</dd>
 <dt class="col-md-4">4</dt><dd class="col-md-8">Paeth</dd>
 </dl>
+</div>
 
 <p>If filter-type is 5, adaptive filtering is used when quality is greater
 than 50 and the image does not have a color map, otherwise no filtering is
@@ -5768,7 +5835,7 @@
   <h3><a class="anchor" id="quantize"></a>-quantize <var>colorspace</var></h3>
 </div>
 
-<p class="magick-description">reduce colors using this colorspace.</p>
+<p class="magick-description">Reduce colors using this colorspace.</p>
 
 <p>This setting defines the colorspace used to sort out and reduce the number
 of colors needed by an image (for later dithering) by operators such as <a
@@ -5781,7 +5848,7 @@
   <h3><a class="anchor" id="quiet"></a>-quiet</h3>
 </div>
 
-<p class="magick-description">suppress all warning messages. Error messages are still reported.</p>
+<p class="magick-description">Suppress all warning messages. Error messages are still reported.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="radial-blur"></a>-radial-blur  <var>angle</var></h3>
@@ -5901,7 +5968,7 @@
   <h3><a class="anchor" id="remote"></a>-remote</h3>
 </div>
 
-<p class="magick-description">perform a remote operation.</p>
+<p class="magick-description">Perform a remote operation.</p>
 
 <p>The only command recognized is the name of an image file to load.</p>
 
@@ -5913,7 +5980,7 @@
   <h3><a class="anchor" id="render"></a>-render</h3>
 </div>
 
-<p class="magick-description">render vector operations.</p>
+<p class="magick-description">Render vector operations.</p>
 
 <p>Use <a href="command-line-options.html#render">+render</a> to turn off rendering vector operations.
 This useful when saving the result to vector formats such as MVG or SVG.</p>
@@ -5994,7 +6061,7 @@
   <h3><a class="anchor" id="respect-parentheses"></a>-respect-parentheses</h3>
 </div>
 
-<p class="magick-description">settings remain in effect until parenthesis boundary.</p>
+<p class="magick-description">Settings remain in effect until parenthesis boundary.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="reverse"></a>-reverse</h3>
@@ -6007,7 +6074,7 @@
   <h3><a class="anchor" id="roll"></a>-roll {<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var></h3>
 </div>
 
-<p class="magick-description">roll an image vertically or horizontally by the amount given.</p>
+<p class="magick-description">Roll an image vertically or horizontally by the amount given.</p>
 
 <p>A negative <var>x</var> offset rolls the image right-to-left.
 A negative <var>y</var> offset rolls the image bottom-to-top.</p>
@@ -6038,7 +6105,7 @@
   <h3><a class="anchor" id="sample"></a>-sample <var>geometry</var></h3>
 </div>
 
-<p class="magick-description">minify / magnify the image with pixel subsampling and pixel replication, respectively.</p>
+<p class="magick-description">Minify / magnify the image with pixel subsampling and pixel replication, respectively.</p>
 
 <p>Change the image size simply by directly sampling the pixels original
 from the image.  When magnifying, pixels are replicated in blocks.  When
@@ -6075,7 +6142,7 @@
   <h3><a class="anchor" id="sampling-factor"></a>-sampling-factor <var>horizontal-factor</var>x<var>vertical-factor</var></h3>
 </div>
 
-<p class="magick-description">sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.</p>
+<p class="magick-description">Sampling factors used by JPEG or MPEG-2 encoder and YUV decoder/encoder.</p>
 
 <p>This option specifies the sampling factors to be used by the JPEG encoder
 for chroma downsampling. If this option is omitted, the JPEG library will use
@@ -6089,7 +6156,7 @@
   <h3><a class="anchor" id="scale"></a>-scale <var>geometry</var></h3>
 </div>
 
-<p class="magick-description">minify / magnify the image with pixel block averaging and pixel replication, respectively.</p>
+<p class="magick-description">Minify / magnify the image with pixel block averaging and pixel replication, respectively.</p>
 
 <p>Change the image size simply by replacing pixels by averaging pixels
 together when minifying, or replacing pixels when magnifying.  </p>
@@ -6111,7 +6178,7 @@
   <h3><a class="anchor" id="scene"></a>-scene <var>value</var></h3>
 </div>
 
-<p class="magick-description">set scene number.</p>
+<p class="magick-description">Set scene number.</p>
 
 <p>This option sets the scene number of an image or the first image in an image sequence.</p>
 
@@ -6119,7 +6186,7 @@
   <h3><a class="anchor" id="screen"></a>-screen</h3>
 </div>
 
-<p class="magick-description">specify the screen to capture.</p>
+<p class="magick-description">Specify the screen to capture.</p>
 
 <p>This option indicates that the GetImage request used to obtain the image
 should be done on the root window, rather than directly on the specified
@@ -6131,13 +6198,13 @@
   <h3><a class="anchor" id="seed"></a>-seed</h3>
 </div>
 
-<p class="magick-description">seed a new sequence of pseudo-random numbers</p>
+<p class="magick-description">Seed a new sequence of pseudo-random numbers</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="segment"></a>-segment <var>cluster-threshold</var>x<var>smoothing-threshold</var></h3>
 </div>
 
-<p class="magick-description">segment the colors of an image.</p>
+<p class="magick-description">Segment the colors of an image.</p>
 
 <p>Segment an image by analyzing the histograms of the color components and
 identifying units that are homogeneous with the fuzzy c-means technique. This
@@ -6154,7 +6221,7 @@
 
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="selective-blur"></a>-selective-blur <var>radius</var><br />-selective-blur <var>radius</var>x<var>sigma</var>{<var>+threshold</var>}</h3>
+  <h3><a class="anchor" id="selective-blur"></a>-selective-blur <var>radius</var><br />-selective-blur <var>radius</var>{x<var>sigma</var>}{<var>+threshold</var>}</h3>
 </div>
 
 <p class="magick-description">Selectively blur pixels within a contrast threshold.</p>
@@ -6166,13 +6233,13 @@
   <h3><a class="anchor" id="separate"></a>-separate</h3>
 </div>
 
-<p class="magick-description">separate an image channel into a grayscale image.  Specify the channel with <a href="command-line-options.html#channel">-channel</a>.</p>
+<p class="magick-description">Separate an image channel into a grayscale image.  Specify the channel with <a href="command-line-options.html#channel">-channel</a>.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="sepia-tone"></a>-sepia-tone <var>percent-threshold</var></h3>
 </div>
 
-<p class="magick-description">simulate a sepia-toned photo.</p>
+<p class="magick-description">Simulate a sepia-toned photo.</p>
 
 <p>Specify <var>threshold</var> as the percent threshold of the intensity (0 - 99.9%).</p>
 
@@ -6188,7 +6255,7 @@
   <h3>+set <var>key</var></h3>
 </div>
 
-<p class="magick-description">sets image attributes and properties for images in the current image sequence.</p>
+<p class="magick-description">Sets image attributes and properties for images in the current image sequence.</p>
 
 <p>This will assign (or modify) specific settings attached to all the images
 in the current image sequence.  Using the <a href="command-line-options.html#set">+set</a> form of the
@@ -6214,8 +6281,8 @@
 a global 'artifact' which are automatically assigned (and any <a href="escape.html" >Format Percent
 Escapes</a> expanded) to images as they are read in.  For example:</p>
 
-<pre class="highlight"><code>-> convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.png
-identify -format %c rose.png
+<pre class="highlight"><code>-> convert rose: -set comment 'Rose is a rose is a rose is a rose' rose.jpg
+identify -format %c rose.jpg
 Rose is a rose is a rose is a rose
 </code></pre>
 
@@ -6297,7 +6364,7 @@
   <h3><a class="anchor" id="shade"></a>-shade <var>azimuth</var>x<var>elevation</var></h3>
 </div>
 
-<p class="magick-description">shade the image using a distant light source.</p>
+<p class="magick-description">Shade the image using a distant light source.</p>
 
 <p>Specify <var>azimuth</var> and <var>elevation</var> as
 the position of the light source. Use <a href="command-line-options.html#shade">+shade</a> to return
@@ -6307,14 +6374,14 @@
   <h3><a class="anchor" id="shadow"></a>-shadow <var>percent-opacity</var>{x<var>sigma</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var>{<var>%</var>}</h3>
 </div>
 
-<p class="magick-description">simulate an image shadow.</p>
+<p class="magick-description">Simulate an image shadow.</p>
 
 <div style="margin: auto;">
   <h3><a
 id="shared-memory"></a>-shared-memory</h3>
 </div>
 
-<p class="magick-description">use shared memory.</p>
+<p class="magick-description">Use shared memory.</p>
 
 <p>This option specifies whether the utility should attempt to use shared
 memory for pixmaps. ImageMagick must be compiled with shared memory support,
@@ -6322,10 +6389,10 @@
 Otherwise, this option is ignored. The default is <code>True</code>.</p>
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="sharpen"></a>-sharpen <var>radius</var><br />-sharpen <var>radius</var>x<var>sigma</var></h3>
+  <h3><a class="anchor" id="sharpen"></a>-sharpen <var>radius</var><br />-sharpen <var>radius</var>{x<var>sigma</var>}</h3>
 </div>
 
-<p class="magick-description">sharpen the image.</p>
+<p class="magick-description">Sharpen the image.</p>
 
 <p>Use a Gaussian operator of the given radius and standard deviation (sigma).</p>
 
@@ -6383,7 +6450,7 @@
   <h3><a class="anchor" id="sigmoidal-contrast"></a>-sigmoidal-contrast <var>contrast</var>x<var>mid-point</var></h3>
 </div>
 
-<p class="magick-description">increase the contrast without saturating highlights or shadows.</p>
+<p class="magick-description">Increase the contrast without saturating highlights or shadows.</p>
 
 <p>Increase the contrast of the image using a sigmoidal transfer function
 without saturating highlights or shadows. <var>Contrast</var>
@@ -6413,14 +6480,14 @@
 
 </div>
 
-<p class="magick-description">operate silently. This option is only used
+<p class="magick-description">Operate silently. This option is only used
 by the <a href="import.html">import</a> tool.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="similarity-threshold"></a>-similarity-threshold <var>value</var></h3>
 </div>
 
-<p class="magick-description">minimum RMSE for subimage match.</p>
+<p class="magick-description">Minimum RMSE for subimage match.</p>
 
 <p>If this setting is used, then the search will stop as soon as it finds a match whose metric is less than or equal to the value. A partially filled second output image will result. Using a value of zero, will cause the search to stop at the first perfect match it finds. If this setting is left off, then the search will proceed to completion or as limited by <var>-dissimilarity-threshold</var>.</p>
 
@@ -6428,7 +6495,7 @@
   <h3><a class="anchor" id="size"></a>-size <var>width</var>[x<var>height</var>][<var>+offset</var>]</h3>
 </div>
 
-<p class="magick-description">set the width and height of the image.</p>
+<p class="magick-description">Set the width and height of the image.</p>
 
 <p>Use this option to specify the width and height of raw images whose
 dimensions are unknown such as <code>GRAY</code>, <code>RGB</code>, or
@@ -6447,10 +6514,10 @@
 </code></pre>
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="sketch"></a>-sketch <var>radius</var><br />-sketch <var>radius</var>x<var>sigma</var>+<var>angle</var></h3>
+  <h3><a class="anchor" id="sketch"></a>-sketch <var>radius</var><br />-sketch <var>radius</var>{x<var>sigma</var>}+<var>angle</var></h3>
 </div>
 
-<p class="magick-description">simulate a pencil sketch.</p>
+<p class="magick-description">Simulate a pencil sketch.</p>
 
 <p>Sketch with the given radius, standard deviation (sigma), and angle.   The
 angle given is the angle toward which the image is sketched.  That is the
@@ -6460,7 +6527,7 @@
   <h3><a class="anchor" id="smush"></a>-smush <var>offset</var></h3>
 </div>
 
-<p class="magick-description">appends an image sequence together ignoring transparency.</p>
+<p class="magick-description">Appends an image sequence together ignoring transparency.</p>
 
 <p>Smush is a more flexible version of <a href="command-line-options.html#append">-append</a>, joining the images in the sequence top-to-bottom (<a href="command-line-options.html#smush">-smush</a>) or left-to-right (<a href="command-line-options.html#smush">+smush</a>), with a gap between images according to the specified offset.</p>
 
@@ -6482,7 +6549,7 @@
   <h3><a class="anchor" id="solarize"></a>-solarize <var>percent-threshold</var></h3>
 </div>
 
-<p class="magick-description">negate all pixels above the threshold level.</p>
+<p class="magick-description">Negate all pixels above the threshold level.</p>
 
 <p>Specify <var>factor</var> as the percent threshold of the intensity (0 - 99.9%).</p>
 
@@ -6496,6 +6563,7 @@
 <p class="magick-description"> color the given image using the specified points of color, and filling the other intervening colors using the given methods. </p>
 
 
+<div class="pre-scrollable">
 <dl class="row">
     <dt class="col-md-4">barycentric</dt>
     <dd class="col-md-8">three point triangle of color given 3 points.
@@ -6520,6 +6588,7 @@
         '<code>shepards</code>'  Generating spots of color in a sea of the
         average of colors. </dd>
 </dl>
+</div>
 
 <p>The points are placed according to the images location on the virtual
 canvas (<a href="command-line-options.html#page" >-page</a> or <a href="command-line-options.html#repage" >-repage</a>
@@ -6568,7 +6637,7 @@
   <h3><a class="anchor" id="spread"></a>-spread <var>amount</var></h3>
 </div>
 
-<p class="magick-description">displace image pixels by a random amount.</p>
+<p class="magick-description">Displace image pixels by a random amount.</p>
 
 <p>The argument <var>amount</var> defines the size of the
 neighborhood around each pixel from which to choose a candidate pixel to
@@ -6580,9 +6649,11 @@
   <h3><a class="anchor" id="statistic"></a>-statistic <var>type</var> <var>geometry</var></h3>
 </div>
 
-<p class="magick-description">replace each pixel with corresponding statistic from the neighborhood.</p>
+<p class="magick-description">Replace each pixel with corresponding statistic from the neighborhood.</p>
 
 <p>Choose from these statistic types:</p>
+
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">Gradient</dt><dd class="col-md-8">maximum difference (max - min) value in neighborhood</dd>
 <dt class="col-md-4">Maximum</dt><dd class="col-md-8">maximum value per channel in neighborhood</dd>
@@ -6594,12 +6665,13 @@
 <dt class="col-md-4">RMS</dt><dd class="col-md-8">root mean square value per channel in neighborhood</dd>
 <dt class="col-md-4">StandardDeviation</dt><dd class="col-md-8"> standard deviation value per channel in neighborhood</dd>
 </dl>
+</div>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="stegano"></a>-stegano <var>offset</var></h3>
 </div>
 
-<p class="magick-description">hide watermark within an image.</p>
+<p class="magick-description">Hide watermark within an image.</p>
 
 <p>Use an offset to start the image hiding some number of pixels from the
 beginning of the image. Note this offset and the image size. You will need
@@ -6610,7 +6682,7 @@
   <h3><a class="anchor" id="stereo"></a>-stereo <var>+x</var>{<var>+y</var>}</h3>
 </div>
 
-<p class="magick-description">composite two images to create a red / cyan stereo anaglyph.</p>
+<p class="magick-description">Composite two images to create a red / cyan stereo anaglyph.</p>
 
 <p>The left side of the stereo pair (second image) is saved as the red channel of the output image. The right side (first image) is saved as the green and blue channels. Red-green stereo glasses are required to properly view the stereo image.</p>
 
@@ -6618,8 +6690,9 @@
   <h3><a class="anchor" id="storage-type"></a>-storage-type <var>type</var></h3>
 </div>
 
-<p class="magick-description">pixel storage type.  Here are the valid types:</p>
+<p class="magick-description">Pixel storage type.  Here are the valid types:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">char</dt><dd class="col-md-8">unsigned characters</dd>
 <dt class="col-md-4">double</dt><dd class="col-md-8">doubles</dd>
@@ -6629,6 +6702,7 @@
 <dt class="col-md-4">quantum</dt><dd class="col-md-8">pixels in the native depth of your ImageMagick distribution</dd>
 <dt class="col-md-4">short</dt><dd class="col-md-8">unsigned shorts</dd>
 </dl>
+</div>
 
 <p>Float and double types are normalized from 0.0 to 1.0 otherwise the pixels
 values range from 0 to the maximum value the storage type can support.</p>
@@ -6665,13 +6739,13 @@
   <h3><a class="anchor" id="strip"></a>-strip</h3>
 </div>
 
-<p class="magick-description">strip the image of any profiles, comments or these PNG chunks: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.</p>
+<p class="magick-description">Strip the image of any profiles, comments or these PNG chunks: bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="stroke"></a>-stroke <var>color</var></h3>
 </div>
 
-<p class="magick-description">color to use when stroking a graphic primitive.</p>
+<p class="magick-description">Color to use when stroking a graphic primitive.</p>
 
 <p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
 
@@ -6681,7 +6755,7 @@
   <h3><a class="anchor" id="strokewidth"></a>-strokewidth <var>value</var></h3>
 </div>
 
-<p class="magick-description">set the stroke width.</p>
+<p class="magick-description">Set the stroke width.</p>
 
 <p>See <a href="command-line-options.html#draw">-draw</a> for further details.</p>
 
@@ -6709,7 +6783,7 @@
   <h3><a class="anchor" id="subimage-search"></a>-subimage-search</h3>
 </div>
 
-<p class="magick-description">search for subimage.</p>
+<p class="magick-description">Search for subimage.</p>
 
 <p>This option is required to have compare search for the best match location
 of a small image within a larger image. This search will produce two images
@@ -6743,7 +6817,7 @@
   <h3><a class="anchor" id="swirl"></a>-swirl <var>degrees</var></h3>
 </div>
 
-<p class="magick-description">swirl image pixels about the center.</p>
+<p class="magick-description">Swirl image pixels about the center.</p>
 
 <p><var>Degrees</var> defines the tightness of the swirl.</p>
 
@@ -6751,7 +6825,7 @@
   <h3><a class="anchor" id="synchronize"></a>-synchronize</h3>
 </div>
 
-<p class="magick-description">synchronize image to storage device.</p>
+<p class="magick-description">Synchronize image to storage device.</p>
 
 <p>Set to "true" to ensure all image data is fully flushed and synchronized
 to disk. There is a performance penalty, but the benefits include ensuring a
@@ -6768,7 +6842,7 @@
   <h3><a class="anchor" id="text-font"></a>-text-font <var>name</var></h3>
 </div>
 
-<p class="magick-description">font for writing fixed-width text.</p>
+<p class="magick-description">Font for writing fixed-width text.</p>
 
 <p>Specifies the name of the preferred font to use in fixed (typewriter style)
 formatted text. The default is 14 point <var>Courier</var>.</p>
@@ -6781,7 +6855,7 @@
   <h3><a class="anchor" id="texture"></a>-texture <var>filename</var></h3>
 </div>
 
-<p class="magick-description">name of texture to tile onto the image background.</p>
+<p class="magick-description">Name of texture to tile onto the image background.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="threshold"></a>-threshold <var>value</var>{<var>%</var>}</h3>
@@ -6912,7 +6986,7 @@
   <h3><a class="anchor" id="transform"></a>-transform</h3>
 </div>
 
-<p class="magick-description">transform the image.</p>
+<p class="magick-description">Transform the image.</p>
 
 <p>This option applies the transformation matrix from a previous <a href="command-line-options.html#affine">-affine</a> option.</p>
 
@@ -6993,7 +7067,7 @@
   <h3><a class="anchor" id="treedepth"></a>-treedepth <var>value</var></h3>
 </div>
 
-<p class="magick-description">tree depth for the color reduction algorithm.</p>
+<p class="magick-description">Tree depth for the color reduction algorithm.</p>
 
 <p>Normally, this integer value is zero or one. A value of zero or one causes
 the use of an optimal tree depth for the color reduction algorithm.</p>
@@ -7013,7 +7087,7 @@
   <h3><a class="anchor" id="trim"></a>-trim</h3>
 </div>
 
-<p class="magick-description">trim an image.</p>
+<p class="magick-description">Trim an image.</p>
 
 <p>This option removes any edges that are exactly the same color as the corner
 pixels. Use <a href="command-line-options.html#fuzz">-fuzz</a> to make <a href="command-line-options.html#trim">-trim</a> remove
@@ -7028,15 +7102,23 @@
 single pixel transparent 'missed' image is returned, in the same way as when a
 <a href="command-line-options.html#crop">-crop</a> operation 'misses' the image proper. </p>
 
-<p>Use <code><a href="command-line-options.html#define">-define</a> trim:percent-background=0%</code> to remove all the background from the image.  The amount of background that is tolerated in an edge specified as a percent.  0% means no background is tolerated.  50% means an edge can contain up to 50% pixels that are background per the fuzz-factor.</p>
+<p>Use <code><a href="command-line-options.html#define">-define</a> trim:percent-background=0%</code> to
+remove all the background from the image.  The amount of background that is
+tolerated in an edge specified as a percent.  0% means no background is tolerated.
+50% means an edge can contain up to 50% pixels that are background per the fuzz-factor.</p>
 
-<p>Use <code><a href="command-line-options.html#background">-background</a> <em>background-color</em></code> to identify background color surrounding the region of interest.</p>
+<p>Use <code><a href="command-line-options.html#define">-define</a> trim:vertical=true</code> or <code>
+<a href="command-line-options.html#define">-define</a> trim:horizontal=true</code> to only trim the horizontal
+or vertical edges of the image.</p>
+
+<p>Use <code><a href="command-line-options.html#background">-background</a> <em>background-color</em></code> to
+identify background color surrounding the region of interest.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="type"></a>-type <var>type</var></h3>
 </div>
 
-<p class="magick-description">the image type.</p> <p>Choose from: <code>Bilevel</code>,
+<p class="magick-description">The image type.</p> <p>Choose from: <code>Bilevel</code>,
 <code>Grayscale</code>, <code>GrayscaleAlpha</code>, <code>Palette</code>,
 <code>PaletteAlpha</code>, <code>TrueColor</code>, <code>TrueColorAlpha</code>,
 <code>ColorSeparation</code>, or <code>ColorSeparationAlpha</code>.</p>
@@ -7060,7 +7142,7 @@
   <h3><a class="anchor" id="undercolor"></a>-undercolor <var>color</var></h3>
 </div>
 
-<p class="magick-description">set the color of the annotation bounding box.</p>
+<p class="magick-description">Set the color of the annotation bounding box.</p>
 
 <p>The color is specified using the format described under the <a href="command-line-options.html#fill">-fill</a> option.</p>
 
@@ -7071,7 +7153,7 @@
   <h3><a class="anchor" id="update"></a>-update <var>seconds</var></h3>
 </div>
 
-<p class="magick-description">detect when image file is modified and redisplay.</p>
+<p class="magick-description">Detect when image file is modified and redisplay.</p>
 
 <p>Suppose that while you are displaying an image the file that is currently
 displayed is over-written.  <code>display</code> will automagically detect that
@@ -7083,14 +7165,14 @@
   <h3><a class="anchor" id="unique-colors"></a>-unique-colors</h3>
 </div>
 
-<p class="magick-description">discard all but one of any pixel color.</p>
+<p class="magick-description">Discard all but one of any pixel color.</p>
 
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="units"></a>-units <var>type</var></h3>
 </div>
 
-<p class="magick-description">the units of image resolution.</p>
+<p class="magick-description">The units of image resolution.</p>
 
 <p>Choose from: <code>Undefined</code>, <code>PixelsPerInch</code>, or
 <code>PixelsPerCentimeter</code>. This option is normally used in conjunction
@@ -7098,10 +7180,10 @@
 
 
 <div style="margin: auto;">
-  <h3><a class="anchor" id="unsharp"></a>-unsharp <var>radius</var><br />-unsharp <var>radius</var>x<var>sigma</var>{<var>+gain</var>}{<var>+threshold</var>}</h3>
+  <h3><a class="anchor" id="unsharp"></a>-unsharp <var>radius</var><br />-unsharp <var>radius</var>{x<var>sigma</var>}{<var>+gain</var>}{<var>+threshold</var>}</h3>
 </div>
 
-<p class="magick-description">sharpen the image with an unsharp mask operator.</p>
+<p class="magick-description">Sharpen the image with an unsharp mask operator.</p>
 
 <p>The <a href="command-line-options.html#unsharp">-unsharp</a> option sharpens an image. The image is
 convolved with a Gaussian operator of the given radius and standard deviation
@@ -7110,6 +7192,7 @@
 
 <p>The parameters are:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">radius</dt>
 <dd class="col-md-8">The radius of the Gaussian, in pixels,  not counting the center pixel (default 0).</dd>
@@ -7120,19 +7203,20 @@
 <dt class="col-md-4">threshold</dt>
 <dd class="col-md-8">The threshold, as a fraction of <var>QuantumRange</var>, needed to apply the difference amount (default 0.05).</dd>
 </dl>
+</div>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="verbose"></a>-verbose</h3>
 </div>
 
-<p class="magick-description">print detailed information about the image when this option precedes the <a href="command-line-options.html#identify">-identify</a> option or <code>info:</code>.</p>
+<p class="magick-description">Print detailed information about the image when this option precedes the <a href="command-line-options.html#identify">-identify</a> option or <code>info:</code>.</p>
 
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="version"></a>-version</h3>
 </div>
 
-<p class="magick-description">print ImageMagick version string and exit.</p>
+<p class="magick-description">Print ImageMagick version string and exit.</p>
 
 
 <div style="margin: auto;">
@@ -7146,7 +7230,7 @@
   <h3><a class="anchor" id="vignette"></a>-vignette <var>radius</var>{x<var>sigma</var>}{<var>+-</var>}<var>x</var>{<var>+-</var>}<var>y</var>{<var>%</var>}</h3>
 </div>
 
-<p class="magick-description">soften the edges of the image in vignette style.</p>
+<p class="magick-description">Soften the edges of the image in vignette style.</p>
 
 <p>The vignette effect rolloff is controlled by radiusxsigma. For nominal rolloff, this would be set to 0xsigma. A value of 0x0 will produce a circle/ellipse with no rolloff. The arguments x and y control the size of the circle. Larger values decrease the radii and smaller values increase the radii. Values of +0+0 will generate a circle/ellipse the same size as the image. The default values for x and y are 10% of the corresponding image dimension. Thus, the radii will be decreased by 10%, i.e., the diameters of the circle/ellipse will be 80% of the corresponding image dimension.</p>
 
@@ -7163,6 +7247,7 @@
 
 <p>Choose from these methods:</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">background</dt><dd class="col-md-8">the area surrounding the image is the background color</dd>
 <dt class="col-md-4">black</dt><dd class="col-md-8">the area surrounding the image is black</dd>
@@ -7180,6 +7265,7 @@
 <dt class="col-md-4">vertical-tile-edge</dt><dd class="col-md-8">vertically tile the image and replicate the side edge pixels</dd>
 <dt class="col-md-4">white</dt><dd class="col-md-8">the area surrounding the image is white</dd>
 </dl>
+</div>
 
 <p>The default value is "edge".</p>
 
@@ -7235,7 +7321,7 @@
   <h3><a class="anchor" id="wavelet-denoise"></a>-wavelet-denoise <var>threshold</var><br />-wavelet-denoise <var>threshold</var>x<var>softness</var></h3>
 </div>
 
-<p class="magick-description">removes noise from the image using a wavelet transform.  The threshold is the value below which everything is considered noise and ranges from 0.0 (none) to QuantumRange or use percent (e.g. 5%). Softness attenuates the threshold and typically ranges from 0.0 (none) to 1.0.  The higher the value the more noise that remains in the image.</p>
+<p class="magick-description">Removes noise from the image using a wavelet transform.  The threshold is the value below which everything is considered noise and ranges from 0.0 (none) to QuantumRange or use percent (e.g. 5%). Softness attenuates the threshold and typically ranges from 0.0 (none) to 1.0.  The higher the value the more noise that remains in the image.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="weight"></a>-weight <var>fontWeight</var></h3>
@@ -7247,6 +7333,7 @@
 the currently selected font family. Use a positive integer for
 <var>fontWeight</var> or select from the following.</p>
 
+<div class="pre-scrollable">
 <dl class="row">
 <dt class="col-md-4">Thin </dt>
 <dd class="col-md-8">Same as <var>fontWeight</var> = 100.</dd>
@@ -7267,6 +7354,7 @@
 <dt class="col-md-4">Heavy </dt>
 <dd class="col-md-8">Same as <var>fontWeight</var> = 900.</dd>
 </dl>
+</div>
 <br/>
 
 <p>To print a complete list of weight types, use <a href="command-line-options.html#list">-list weight</a>.</p>
@@ -7279,13 +7367,13 @@
   <h3><a class="anchor" id="white-balance"></a>-white-balance</h3>
 </div>
 <p>Applies white balancing to an image according to a grayworld assumption in the LAB colorspace.</p>
-<p>Use <kbd>-define white-balance:vibrance=<em>value{%}</em> to change the color vibrance of the a &amp; b channels.</p>
+<p>Use <kbd>-define white-balance:vibrance=<em>value{%}</em></kdb> to change the color vibrance of the a &amp; b channels.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="white-point"></a>-white-point <var>x,y</var></h3>
 </div>
 
-<p class="magick-description">chromaticity white point.</p>
+<p class="magick-description">Chromaticity white point.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="white-threshold"></a>-white-threshold <var>value</var>{<var>%</var>}</h3>
@@ -7319,13 +7407,13 @@
   <h3><a class="anchor" id="window-group"></a>-window-group</h3>
 </div>
 
-<p class="magick-description">specify the window group.</p>
+<p class="magick-description">Specify the window group.</p>
 
 <div style="margin: auto;">
   <h3><a class="anchor" id="write"></a>-write <var>filename</var></h3>
 </div>
 
-<p class="magick-description">write an image sequence.</p>
+<p class="magick-description">Write an image sequence.</p>
 
 <p>The image sequence preceding the <a href="command-line-options.html#write">-write</a> <var>filename</var> option is written out, and processing continues with the same image in its current state if there are additional options. To restore the image to its original state after writing it, use the <a href="command-line-options.html#write">+write</a> <var>filename</var> option.</p>
 
@@ -7367,7 +7455,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -7375,4 +7463,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 20:41 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:14 -->
\ No newline at end of file
diff --git a/www/command-line-processing.html b/www/command-line-processing.html
index 4e6c398..cd2c2c3 100644
--- a/www/command-line-processing.html
+++ b/www/command-line-processing.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Processing</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -655,7 +655,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -663,4 +663,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:26 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:22 -->
\ No newline at end of file
diff --git a/www/command-line-tools.html b/www/command-line-tools.html
index d6a1c46..f771529 100644
--- a/www/command-line-tools.html
+++ b/www/command-line-tools.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -116,7 +116,7 @@
   <dt class="col-md-4"><a class="anchor" id="stream"></a><a href="stream.html">magick stream</a></dt><dd class="col-md-8">a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats.  It writes the pixel components as they are read from the input image a row at a time making <code>stream</code> desirable when working with large images or when you require raw pixel components.</dd>
 </dl>
 <p>Your installation may have direct ImageMagick version 6 compatibility links.  If so, you can access the tools directly by referring to them by name.  For example,
-<pre class="highlight"><code>identify -verbose myImage.png</code></pre>
+<pre class="highlight"><code>magick identify -verbose myImage.png</code></pre>
 
 </div>
     </div>
@@ -139,7 +139,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -147,4 +147,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:31 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:16 -->
\ No newline at end of file
diff --git a/www/compare.html b/www/compare.html
index 1f8a4df..523df15 100644
--- a/www/compare.html
+++ b/www/compare.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Compare</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -99,7 +99,7 @@
 
 <p>We list a few examples of the <code>compare</code> command here to illustrate its usefulness and ease of use. To get started, lets compare an image to one thats been sharpened:</p>
 
-<pre class="highlight"><code>magick convert rose.jpg -sharpen 0x1 reconstruct.jpg
+<pre class="highlight"><code>magick rose.jpg -sharpen 0x1 reconstruct.jpg
 magick compare rose.jpg reconstruct.jpg difference.png
 magick compare -compose src rose.jpg reconstruct.jpg difference.png
 </code></pre>
@@ -457,7 +457,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -465,4 +465,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:07 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:01 -->
\ No newline at end of file
diff --git a/www/compose.html b/www/compose.html
index 0ea4da2..dadb230 100644
--- a/www/compose.html
+++ b/www/compose.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Alpha Compositing</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -688,7 +688,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -696,4 +696,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:40 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:30 -->
\ No newline at end of file
diff --git a/www/composite.html b/www/composite.html
index 7284850..88a0976 100644
--- a/www/composite.html
+++ b/www/composite.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Composite</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -559,7 +559,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -567,4 +567,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:19 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:36 -->
\ No newline at end of file
diff --git a/www/conjure.html b/www/conjure.html
index ddbf79b..372ad7b 100644
--- a/www/conjure.html
+++ b/www/conjure.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Conjure</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -1167,7 +1167,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -1175,3 +1175,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 18:14 -->
\ No newline at end of file
diff --git a/www/connected-components.html b/www/connected-components.html
index c9dc4d7..a8b0dbc 100644
--- a/www/connected-components.html
+++ b/www/connected-components.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Connected Components Labeling</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -162,7 +162,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -170,4 +170,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:19 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:17 -->
\ No newline at end of file
diff --git a/www/contact.html b/www/contact.html
index cd56ae2..7627b7c 100644
--- a/www/contact.html
+++ b/www/contact.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Contact the Development Team</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -96,7 +96,7 @@
   <fieldset>
   <h2>Contact the Wizards</h2>
 	<p>Enter this code, <code>
-83c3aa</code>, in the Authenticate field and fill in the remaining fields.  Press Send to forward your message to the ImageMagick wizards:</p>
+1bf0c1</code>, in the Authenticate field and fill in the remaining fields.  Press Send to forward your message to the ImageMagick wizards:</p>
   <br/>
   <form method="post" name="post" id="post" action="https://imagemagick.org/script/contact.php" enctype="application/x-www-form-urlencoded">
   <div class="table-responsive" style="font-size:87.5% !important;">
@@ -169,7 +169,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/convert.html b/www/convert.html
index e41c0c7..0ba8dea 100644
--- a/www/convert.html
+++ b/www/convert.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Convert</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -226,6 +226,11 @@
   </tr>
 
   <tr>
+    <td><a href="command-line-options.html#bilateral-blur">-bilateral-blur <var>geometry</var></a></td>
+    <td>non-linear, edge-preserving, and noise-reducing smoothing filter</td>
+  </tr>
+
+  <tr>
     <td><a href="command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
     <td>force all pixels below the threshold into black</td>
   </tr>
@@ -1378,7 +1383,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -1386,4 +1391,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:28 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:01 -->
\ No newline at end of file
diff --git a/www/convex-hull.html b/www/convex-hull.html
index 9407f74..63753e7 100644
--- a/www/convex-hull.html
+++ b/www/convex-hull.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Convex Hull</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -168,7 +168,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -176,4 +176,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:05 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:37 -->
\ No newline at end of file
diff --git a/www/defines.html b/www/defines.html
index 0f01f58..e43b8a1 100644
--- a/www/defines.html
+++ b/www/defines.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Defines</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -127,7 +127,7 @@
 <div class="table-responsive" style="font-size:87.5% !important;">
 
 <table class="table table-sm table-hover">
-   <tr>
+  <tr>
     <th align="center" colspan=2>Command-line Defines</th>
   </tr>
 
@@ -135,7 +135,7 @@
    <td colspan=2><p></p></td>
   </tr>
 
- <tr>
+  <tr>
     <td>auto-threshold:verbose</td>
     <td>return derived threshold as the <code>auto-threshold:threshold</code> image property.</td>
   </tr>
@@ -148,24 +148,24 @@
     -type truecolor. JPG and PSD will need this define.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>compare:ssim-radius=<var>value</var></td>
-     <td>Set the structural similarity index radius.</td>
+    <td>Set the structural similarity index radius.</td>
   </tr>
 
-    <tr>
+  <tr>
     <td>compare:ssim-sigma=<var>value</var></td>
-     <td>Set the structural similarity index sigma.</td>
+    <td>Set the structural similarity index sigma.</td>
   </tr>
 
-    <tr>
+  <tr>
     <td>compare:ssim-k1=<var>value</var></td>
-     <td>Set the structural similarity index k1 argument.</td>
+    <td>Set the structural similarity index k1 argument.</td>
   </tr>
 
-    <tr>
+  <tr>
     <td>compare:ssim-k2=<var>value</var></td>
-     <td>Set the structural similarity index k2 argument.</td>
+    <td>Set the structural similarity index k2 argument.</td>
   </tr>
 
  <tr>
@@ -246,12 +246,12 @@
     <td>Comma and/or hyphenated list of id values to keep in the output.  Supported in Imagemagick 6.9.3-0.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>connected-components:keep-colors=<var>red;green;blue</var></td>
     <td>Keeps objects identified by their color in a semicolon separated list.  Supported in Imagemagick 6.9.3-0.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>connected-components:keep-top=<var>number-of-objects</var></td>
     <td>Keeps only the top number of objects by area.  Supported in Imagemagick 7.0.9.21.</td>
   </tr>
@@ -284,7 +284,7 @@
      Supported in Imagemagick 6.9.2-9.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>connected-components:remove-colors=<var>red;green;blue</var></td>
     <td>Remove objects identified by their color in a semicolon separated list.
     Supported in Imagemagick 6.9.3-0.</td>
@@ -317,7 +317,7 @@
 
   <tr>
     <td>delegate:bimodal=<var>true</var></td>
-     <td>Specify direct conversion from Postscript to PDF.</td>
+    <td>Specify direct conversion from Postscript to PDF.</td>
   </tr>
 
   <tr>
@@ -344,108 +344,108 @@
 
   <tr>
     <td>filter:b=<var>value</var></td>
-     <td>Redefine the spline factor used for cubic filters such as Cubic, 
-     Catrom, Mitchel, and Hermite, as well as the Parzen cubic windowing 
-     function. If only one of the b or c values are defined, the other is 
-     set so as to generate a 'Cubic-Keys' filter. The meaning of the b and c 
-     values was defined in a research paper by Mitchell-Netravali.</td>
+    <td>Redefine the spline factor used for cubic filters such as Cubic, 
+    Catrom, Mitchel, and Hermite, as well as the Parzen cubic windowing 
+    function. If only one of the b or c values are defined, the other is 
+    set so as to generate a 'Cubic-Keys' filter. The meaning of the b and c 
+    values was defined in a research paper by Mitchell-Netravali.</td>
   </tr>
 
   <tr>
     <td>filter:blur=<var>factor</var></td>
-     <td>Scale the X axis of the filter (and its window). Use > 1.0 for blurry 
-     or &lt; 1.0 for sharp. This should only be used with Gaussian and 
-     Gaussian-like filters simple filters, or you may not get the 
-     expected results.</td>
+    <td>Scale the X axis of the filter (and its window). Use > 1.0 for blurry 
+    or &lt; 1.0 for sharp. This should only be used with Gaussian and 
+    Gaussian-like filters simple filters, or you may not get the 
+    expected results.</td>
   </tr>
 
   <tr>
     <td>filter:c=<var>value</var></td>
-     <td>Redefine the Keys alpha factor used for cubic filters such as Cubic, 
-     Catrom, Mitchel, and Hermite, as well as the Parzen cubic windowing 
-     function. If only one of the b or c values are defined, the other is 
-     set so as to generate a 'Cubic-Keys' filter. The meaning of the b and c 
-     values was defined in a research paper by Mitchell-Netravali.</td>
+    <td>Redefine the Keys alpha factor used for cubic filters such as Cubic, 
+    Catrom, Mitchel, and Hermite, as well as the Parzen cubic windowing 
+    function. If only one of the b or c values are defined, the other is 
+    set so as to generate a 'Cubic-Keys' filter. The meaning of the b and c 
+    values was defined in a research paper by Mitchell-Netravali.</td>
   </tr>
 
   <tr>
     <td>filter:kaiser-alpha=<var>value</var></td>
-     <td>Set the Kaiser window alpha value. When it is multiplied by 'PI', 
-     it is equivalent to "kaiser-beta" and will override that setting. 
-     It only affects the Kaiser windowing function and does not affect 
-     any other attributes.</td>
+    <td>Set the Kaiser window alpha value. When it is multiplied by 'PI', 
+    it is equivalent to "kaiser-beta" and will override that setting. 
+    It only affects the Kaiser windowing function and does not affect 
+    any other attributes.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>filter:kaiser-beta=<var>value</var></td>
-     <td>Set the Kaiser window beta value. It only affects Kaiser windowing 
-     function and does not affect any other attributes. Before ImageMagick 
-     v6.7.6-10, this option was known as "filter:alpha" (an inheritance 
-     from the very old "zoom" program). It was changed to bring the function 
-     in line with more modern academic research usage and better assign it 
-     be more definitive. The default value is 6.5</td>
+    <td>Set the Kaiser window beta value. It only affects Kaiser windowing 
+    function and does not affect any other attributes. Before ImageMagick 
+    v6.7.6-10, this option was known as "filter:alpha" (an inheritance 
+    from the very old "zoom" program). It was changed to bring the function 
+    in line with more modern academic research usage and better assign it 
+    be more definitive. The default value is 6.5</td>
   </tr>
 
  <tr>
     <td>filter:lobes=<var>count</var></td>
-     <td>Set the number of lobes to use for the Sinc/Bessel filter. 
-     This is an alternate way of specifying the 'support' range of the filter, 
-     that is designed to be more suited to windowed filters, especially when 
-     used for image distorts.</td>
+    <td>Set the number of lobes to use for the Sinc/Bessel filter. 
+    This is an alternate way of specifying the 'support' range of the filter, 
+    that is designed to be more suited to windowed filters, especially when 
+    used for image distorts.</td>
   </tr>
 
   <tr>
     <td>filter:sigma=<var>value</var></td>
-     <td>Set the 'sigma' value used to define the Gaussian filter. 
-     The default sigma value is '0.5'. It only affects the Gaussian filter, 
-     but does not shrink (but may enlarge) the filter's 'support'. 
-     It can be used to generate very small blurs, but without the filter 
-     'missing' pixels due to using a small support setting. 
-     A larger value of '0.707' (a value of '1/sqrt(2)') is another 
-     common setting.</td>
+    <td>Set the 'sigma' value used to define the Gaussian filter. 
+    The default sigma value is '0.5'. It only affects the Gaussian filter, 
+    but does not shrink (but may enlarge) the filter's 'support'. 
+    It can be used to generate very small blurs, but without the filter 
+    'missing' pixels due to using a small support setting. 
+    A larger value of '0.707' (a value of '1/sqrt(2)') is another 
+    common setting.</td>
   </tr>
 
   <tr>
     <td>filter:support=<var>radius</var></td>
-     <td>Set the filter support radius. It defines how large the filter 
-     should be and thus directly defines how slow the filtered resampling 
-     process is. All filters have a default 'preferred' support size. 
-     Some filters like Lagrange and windowed filters adjust themselves 
-     depending on this value. With simple filters this value either does 
-     nothing (but slow the resampling), or will clip the filter function 
-     in a detrimental way.</td>
+    <td>Set the filter support radius. It defines how large the filter 
+    should be and thus directly defines how slow the filtered resampling 
+    process is. All filters have a default 'preferred' support size. 
+    Some filters like Lagrange and windowed filters adjust themselves 
+    depending on this value. With simple filters this value either does 
+    nothing (but slow the resampling), or will clip the filter function 
+    in a detrimental way.</td>
   </tr>
 
   <tr>
     <td>filter:verbose=<var>true</var></td>
-     <td>Enable printing of information about the final internal 
-     filter selection to standard output. This includes a commented header 
-     on the filter settings being used and data allowing the filter weights 
-     to be easily graphed. Note however that some filters are internally 
-     defined in terms of other filters. The Lanczos filter, for example, 
-     is defined in terms of a SincFast windowed SincFast filter, while 
-     the Mitchell filter is defined as a general Cubic family filter 
-     with specific 'B' and 'C' settings.</td>
+    <td>Enable printing of information about the final internal 
+    filter selection to standard output. This includes a commented header 
+    on the filter settings being used and data allowing the filter weights 
+    to be easily graphed. Note however that some filters are internally 
+    defined in terms of other filters. The Lanczos filter, for example, 
+    is defined in terms of a SincFast windowed SincFast filter, while 
+    the Mitchell filter is defined as a general Cubic family filter 
+    with specific 'B' and 'C' settings.</td>
   </tr>
 
   <tr>
     <td>filter:window=<var>filter_function</var></td>
-     <td>The IIR (infinite impulse response) filters Sinc and Jinc are 
-     windowed (brought down to zero over the defined support range) with 
-     the given filter. This allows you to specify a filter function to be 
-     used as a windowing function for these IIR filters. Many of the defined 
-     filters are actually windowing functions for these IIR filters. A typical 
-     choices is Box, (which effectively turns off the windowing function).</td>
+    <td>The IIR (infinite impulse response) filters Sinc and Jinc are 
+    windowed (brought down to zero over the defined support range) with 
+    the given filter. This allows you to specify a filter function to be 
+    used as a windowing function for these IIR filters. Many of the defined 
+    filters are actually windowing functions for these IIR filters. A typical 
+    choices is Box, (which effectively turns off the windowing function).</td>
   </tr>
   
   <tr>
     <td>filter:window-support=<var>radius</var></td>
-     <td>Scale the windowing function to this size. This causes 
-     the windowing (or self-windowing Lagrange filter) to act is if the 
-     support window is larger than what is actually supplied to the calling 
-     operator. The filter, however, is still clipped to the true support 
-     size that is provided. If unset, this will equal the normal filter 
-     support size.</td>
+    <td>Scale the windowing function to this size. This causes 
+    the windowing (or self-windowing Lagrange filter) to act is if the 
+    support window is larger than what is actually supplied to the calling 
+    operator. The filter, however, is still clipped to the true support 
+    size that is provided. If unset, this will equal the normal filter 
+    support size.</td>
   </tr>
 
   <tr>
@@ -462,22 +462,21 @@
 
   <tr>
     <td>h:format=<var>value</var></td>
-     <td>Set the image encoding format use when writing a C-style header.
-         <var>format</var> can be any output format supported by ImageMagick
-         except for <var>h</var> and <var>magick</var>.  If this
-         option is omitted, the default is <var>GIF</var> for PseudoClass
-         images and <var>PNM</var> for DirectClass images.
-    </td>
+    <td>Set the image encoding format use when writing a C-style header.
+    <var>format</var> can be any output format supported by ImageMagick
+    except for <var>h</var> and <var>magick</var>.  If this
+    option is omitted, the default is <var>GIF</var> for PseudoClass
+    images and <var>PNM</var> for DirectClass images.</td>
   </tr>
 
   <tr>
     <td>hough-lines:accumulator=true</td>
-     <td>Return the accumulator image in addition to the lines image.</td>
+    <td>Return the accumulator image in addition to the lines image.</td>
   </tr>
 
   <tr>
     <td>json:features</td>
-   <td>Include features in verbose information.</td>
+    <td>Include features in verbose information.</td>
   </tr>
 
   <tr>
@@ -492,37 +491,37 @@
 
   <tr>
     <td>json:moments</td>
-   <td>Include image moments in verbose information.</td>
+    <td>Include image moments in verbose information.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>kmeans:seed-colors=<var>color-list</var></td>
-     <td>Initialize the colors, where color-list is a semicolon delimited 
-     list of seed colors (e.g. red;sRGB(19,167,254);#00ffff)</td>
+    <td>Initialize the colors, where color-list is a semicolon delimited 
+    list of seed colors (e.g. red;sRGB(19,167,254);#00ffff)</td>
   </tr>
 
  <tr>
     <td>magick:format=<var>value</var></td>
-     <td>Set the image encoding format use when writing a C-style header.
-         This is the same as "h:format=format" described above.</td>
+    <td>Set the image encoding format use when writing a C-style header.
+    This is the same as "h:format=format" described above.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>magnify:method=<var>value</var></td>
     <td>Choose the method of pixel art magnification. The choices are: 
     eagle2X, eagle3X, eagle3XB, epb2X, fish2X, hq2X, scale2X (default), 
     scale3X, xbr2X</td>
-  	</tr>
+  </tr>
 
-   <tr>
+  <tr>
     <td>modulate:colorspace=<var>colorspace</var></td>
     <td>Define the colorspace to use with <a href="command-line-options.html#modulate">-modulate</a>. 
     Any hue-based colorspace may be use. The default is HSL.</td>
-  	</tr>
+  </tr>
 
  <tr>
     <td>morphology:compose=<var>compose-method</var></td>
-     <td>Specify how to merge results generated by multiple<a
+    <td>Specify how to merge results generated by multiple<a
     href="defines.html#morphology" >-morphology</a> kernel. The default is none. One
     typical value is 'lighten' as used, for example, with the sobel edge
     kernels. </td>
@@ -530,7 +529,7 @@
 
   <tr>
     <td>morphology:showKernel=<var>1</var></td>
-     <td>Output (to 'standard error') all the information about a generated <a
+    <td>Output (to 'standard error') all the information about a generated <a
     href="defines.html#morphology" >-morphology</a> kernel.</td>
   </tr>
 
@@ -550,32 +549,32 @@
 
   <tr>
     <td>profile:skip=<var>name1,name2,...</var></td>
-     <td>Skip the named profile[s] when reading the image. Use skip="*" to
+    <td>Skip the named profile[s] when reading the image. Use skip="*" to
     skip all named profiles in the image. Many named profiles exist,
     including ICC, EXIF, APP1, IPTC, XMP, and others.</td>
   </tr>
 
   <tr>
     <td>precision:highres-transform=<var>true</var></td>
-     <td>Increase the profile transform precision. Note, there is a slight 
-     performance penalty as the high-precision transform is floating point 
-     rather than unsigned. It is important to note that results may depend 
-     on whether or not the original image already has an included profile.</td>
+    <td>Increase the profile transform precision. Note, there is a slight 
+    performance penalty as the high-precision transform is floating point 
+    rather than unsigned. It is important to note that results may depend 
+    on whether or not the original image already has an included profile.</td>
   </tr>
 
   <tr>
     <td>preserve-timestamp=<var>true|false</var></td>
-     <td>Preserve file timestamp (<code>mogrify</code> only).</td>
+    <td>Preserve file timestamp (<code>mogrify</code> only).</td>
   </tr>
 
   <tr>
     <td>q-table=<var>quantization-table.xml</var></td>
-     <td>Custom JPEG quantization tables.</td>
+    <td>Custom JPEG quantization tables.</td>
   </tr>
 
   <tr>
     <td>quantum:format=<var>type</var></td>
-     <td>Set the type to <code>floating-point</code> to specify a floating-point
+    <td>Set the type to <code>floating-point</code> to specify a floating-point
     format for raw files (e.g. GRAY:) or for MIFF and TIFF images in HDRI mode
     to preserve negative values. If <a href="command-line-options.html#depth">-depth</a> 16 is
     included, the result is a single precision floating point format.
@@ -583,63 +582,73 @@
     double precision floating point format. For signed pixel data, use <code>-define quantum:format=signed</code></td>
   </tr>
 
-   <tr>
+  <tr>
     <td>quantum:maximum=<var>value</var></td>
-     <td>Maximum value for certain image types such as DCM. If not set, the 
-     the maximum value is QuantumRange.</td>
+    <td>Maximum value for certain image types such as DCM. If not set, the 
+    the maximum value is QuantumRange.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>quantum:minimum=<var>value</var></td>
-     <td>Minimum value for certain image types such as DCM. If not set, the 
-     the minimum value is zero.</td>
+    <td>Minimum value for certain image types such as DCM. If not set, the 
+    the minimum value is zero.</td>
   </tr>
 
  <tr>
     <td>quantum:polarity=<var>photometric-interpretation</var></td>
-     <td>Set the photometric-interpretation of an image (typically for TIFF
-     image file format) to either <code>min-is-black</code> (default) or
+    <td>Set the photometric-interpretation of an image (typically for TIFF
+    image file format) to either <code>min-is-black</code> (default) or
     <code>min-is-white</code>.</td>
   </tr>
 
   <tr>
     <td>registry:<var>attribute</var>=<var>value</var></td>
-     <td>Set attributes of the image registry, for example, 
-     registry:temporary-path=/data/tmp.
+    <td>Set attributes of the image registry, for example, 
+    registry:temporary-path=/data/tmp.
     </td>
   </tr>
 
   <tr>
     <td>resample:verbose=<var>true</var></td>
-     <td>Output the cylindrical filter lookup table created by the EWA 
-     (Elliptical Weighted Average) resampling algorithm. Note this table 
-     uses a squared radius lookup value. This is typically only used for 
-     debugging EWA resampling.
+    <td>Output the cylindrical filter lookup table created by the EWA 
+    (Elliptical Weighted Average) resampling algorithm. Note this table 
+    uses a squared radius lookup value. This is typically only used for 
+    debugging EWA resampling.
     </td>
   </tr>
 
   <tr>
     <td>sample:offset=<var>geometry</var></td>
-     <td>Location of the sampling point within the sub-region being sampled,
+    <td>Location of the sampling point within the sub-region being sampled,
     expressed as percentages (see <a href="command-line-options.html#sample" >-sample</a>).</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>shepards:power=<var>value</var></td>
-     <td>Set the exponent in the Shepard's distortion. The default is 2.</td>
+    <td>Set the exponent in the Shepard's distortion. The default is 2.</td>
   </tr>
 
-<tr>
+  <tr>
     <td>stream:buffer-size=<var>value</var></td>
-   <td>Set the stream buffer size.  Select 0 for unbuffered I/O.</td>
+    <td>Set the stream buffer size.  Select 0 for unbuffered I/O.</td>
   </tr>
 
- <tr>
+  <tr>
     <td>trim:percent-background=<var>X%</var></td>
-   <td>Set the amount of background that is tolerated in an edge. It is 
-   specified as a percent. 0% means no background is tolerated. 
-   50% means an edge can contain up to 50% pixels that are background per 
-   the fuzz-factor.</td>
+    <td>Set the amount of background that is tolerated in an edge. It is 
+    specified as a percent. 0% means no background is tolerated. 
+    50% means an edge can contain up to 50% pixels that are background per 
+    the fuzz-factor.</td>
+  </tr>
+
+  <tr>
+    <td>trim:horizontal=<var>true</var></td>
+    <td>Only trim the horizontal edges of the image.</td>
+  </tr>
+
+  <tr>
+    <td>trim:vertical=<var>true</var></td>
+    <td>Only trim the vertical edges of the image.</td>
   </tr>
 
   <tr>
@@ -677,21 +686,20 @@
     <td>Turn off the beep when importing an image.</td>
   </tr>
 
-
   <tr>
-   <td colspan=2><p></p></td>
+    <td colspan=2><p></p></td>
   </tr>
 
   <tr>
-   <td colspan=2><p></p></td>
+    <td colspan=2><p></p></td>
   </tr>
 
   <tr>
-   <th align="center" colspan=2>IMAGE FORMATS</th>
+    <th align="center" colspan=2>IMAGE FORMATS</th>
   </tr>
 
   <tr>
-   <td colspan=2><p></p></td>
+    <td colspan=2><p></p></td>
   </tr>
 
   <tr>
@@ -702,9 +710,9 @@
   <tr>
     <td>bmp:format=<var>value</var></td>
     <td>Valid values are <var>bmp2</var>, <var>bmp3</var>,
-   and <var>bmp4</var>.  This option can be useful when the
-   method of prepending "BMP2:" to the output filename is inconvenient or
-   is not available, such as when using the <a href="mogrify.html">mogrify</a>   utility.</td>
+    and <var>bmp4</var>.  This option can be useful when the
+    method of prepending "BMP2:" to the output filename is inconvenient or
+    is not available, such as when using the <a href="mogrify.html">mogrify</a>    utility.</td>
   </tr>
 
   <tr>
@@ -716,7 +724,7 @@
 
   <tr>
     <td>dcm:display-range=<var>reset</var></td>
-     <td>Set the display range to the minimum and maximum pixel values for the
+    <td>Set the display range to the minimum and maximum pixel values for the
     DCM image format.</td>
   </tr>
 
@@ -726,87 +734,87 @@
      in the file.</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>dcm:rescale=<var>true</var></td>
-     <td>Enable interpretation of the rescale slope and intercept settings 
-     in the file.</td>
+    <td>Enable interpretation of the rescale slope and intercept settings 
+    in the file.</td>
   </tr>
 
-    <tr>
+  <tr>
     <td>dcm:window=<var>CxW</var></td>
-     <td>Specify the dcm window center and width.</td>
+    <td>Specify the dcm window center and width.</td>
   </tr>
 
-<tr>
+  <tr>
     <td>dds:cluster-fit=<var>true|false</var></td>
-     <td>Enable the DDS cluster-fit.</td>
+    <td>Enable the DDS cluster-fit.</td>
   </tr>
 
   <tr>
     <td>dds:compression=<var>dxt1|dxt5|none</var></td>
-     <td>Set the dds compression.</td>
+    <td>Set the dds compression.</td>
   </tr>
 
   <tr>
     <td>dds:mipmaps=<var>value</var></td>
-     <td>Set the dds number of mipmaps.</td>
+    <td>Set the dds number of mipmaps.</td>
   </tr>
 
   <tr>
-     <td>dds:weight-by-alpha=<var>true|false</var></td>
-     <td>Enable the DDS alpha weighting.</td>
+    <td>dds:weight-by-alpha=<var>true|false</var></td>
+    <td>Enable the DDS alpha weighting.</td>
   </tr>
 
   <tr>
     <td>dng:output-color=<var>value</var></td>
-     <td>Select the output colorspace. The choices are: 
-       0 - Raw color (unique to each camera), 
-       1 - sRGB D65 (default), 
-       2 - Adobe RGB (1998) D65, 
-       3 - Wide Gamut RGB D65, 
-       4 - Kodak ProPhoto RGB D65,  
-       5 - XYZ, 
-       6 - ACES</td>  
-    </tr>
+    <td>Select the output colorspace. The choices are:
+    0 - Raw color (unique to each camera),
+    1 - sRGB D65 (default),
+    2 - Adobe RGB (1998) D65,
+    3 - Wide Gamut RGB D65,
+    4 - Kodak ProPhoto RGB D65,
+    5 - XYZ,
+    6 - ACES</td>
+  </tr>
 
   <tr>
     <td>dng:use-auto-bright=<var>false</var></td>
-     <td>Disable the histogram-based white level.</td>
+    <td>Disable the histogram-based white level.</td>
   </tr>
 
- <tr>
+  <tr>
     <td>dng:use-auto-wb=<var>true</var></td>
-     <td>Compute the white balance by averaging the entire image.</td>
+    <td>Compute the white balance by averaging the entire image.</td>
   </tr>
 
   <tr>
     <td>dng:use-camera-wb=<var>true</var></td>
-     <td>Uses the white balance specified by the camera.</td>
+    <td>Uses the white balance specified by the camera.</td>
   </tr>
 
   <tr>
     <td>dot:layout-engine=<var>value</var></td>
-     <td>Specify the layout engine for the DOT image format (e.g.
+    <td>Specify the layout engine for the DOT image format (e.g.
     <code>neato</code>).</td>
   </tr>
 
   <tr>
     <td>eps:use-cropbox=<var>true</var></td>
-     <td>Force Imagemagick to respect the crop box.</td>
+    <td>Force Imagemagick to respect the crop box.</td>
   </tr>
 
   <tr>
     <td>exr:color-type=<var>value</var></td>
-     <td>Specify the color type for the EXR format: RGB, RGBA, YC, YCA, Y, 
-     YA, R, G, B, A).</td>
+    <td>Specify the color type for the EXR format: RGB, RGBA, YC, YCA, Y, 
+    YA, R, G, B, A).</td>
   </tr>
 
   <tr>
     <td>fpx:view=<var>value</var></td>
-     <td>Specify the FlashPix viewing object, which contains the specification 
-     of a viewing transform. The viewing transform enables applications to 
-     represent a set of simple edits as a list of "commands" which are applied 
-     to the image in real time without altering the original image.</td>
+    <td>Specify the FlashPix viewing object, which contains the specification 
+    of a viewing transform. The viewing transform enables applications to 
+    represent a set of simple edits as a list of "commands" which are applied 
+    to the image in real time without altering the original image.</td>
   </tr>
 
   <tr>
@@ -819,30 +827,30 @@
 
   <tr>
     <td>icon:auto-resize</td>
-     <td>Automatically stores multiple sizes when writing an ico image (requires a 256x256 input image).</td>
+    <td>Automatically stores multiple sizes when writing an ico image (requires a 256x256 input image).</td>
   </tr>
 
   <tr>
     <td>jp2:layer-number=<var>value</var></td>
-     <td>Set the maximum number of quality layers to decode. Same for JPT, JC2,
+    <td>Set the maximum number of quality layers to decode. Same for JPT, JC2,
     and J2K.</td>
   </tr>
 
   <tr>
     <td>jp2:number-resolutions=<var>value</var></td>
-     <td>Set the number of resolutions to encode.Same for JPT, JC2, and
-     J2K.</td>
+    <td>Set the number of resolutions to encode.Same for JPT, JC2, and
+    J2K.</td>
   </tr>
 
   <tr>
     <td>jp2:progression-order=<var>value</var></td>
-     <td>Choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and
+    <td>Choose from LRCP, RLCP, RPCL, PCRL or CPRL. Same for JPT, JC2, and
     J2K.</td>
   </tr>
 
   <tr>
     <td>jp2:quality=<var>value,value...</var></td>
-     <td>Set the quality layer PSNR, given in dB. The order is from left to
+    <td>Set the quality layer PSNR, given in dB. The order is from left to
     right in ascending order. The default is a single lossless quality layer.
     Same for JPT, JC2, and J2K.</td>
   </tr>
@@ -858,7 +866,7 @@
 
   <tr>
     <td>jp2:reduce-factor=<var>value</var></td>
-     <td>Set the number of highest resolution levels to be discarded.Same for
+    <td>Set the number of highest resolution levels to be discarded.Same for
     JPT, JC2, and J2K.</td>
   </tr>
 
@@ -875,13 +883,13 @@
 
   <tr>
     <td>jpeg:dct-method=<var>value</var></td>
-     <td>Choose from <code>default</code>, <code>fastest</code>,
+    <td>Choose from <code>default</code>, <code>fastest</code>,
     <code>float</code>, <code>ifast</code>, and <code>islow</code>.</td>
   </tr>
 
   <tr>
     <td>jpeg:extent=<var>value</var></td>
-     <td>Restrict the maximum JPEG file size, for example <code>-define
+    <td>Restrict the maximum JPEG file size, for example <code>-define
     jpeg:extent=400KB</code>.  The JPEG encoder will search for the highest
     compression quality level that results in an output file that does not
     exceed the value. The <code>-quality</code> option also will be respected
@@ -912,7 +920,7 @@
 
   <tr>
     <td>jpeg:size=<var>geometry</var></td>
-     <td>Set the size hint of a JPEG image, for
+    <td>Set the size hint of a JPEG image, for
     example, <code>-define jpeg:size=128x128</code>.
     It is most useful for increasing performance and reducing the memory
     requirements when reducing the size of a large JPEG image.</td>
@@ -920,7 +928,7 @@
 
   <tr>
     <td>mng:need-cacheoff</td>
-   <td>turn playback caching off for streaming MNG.</td>
+    <td>turn playback caching off for streaming MNG.</td>
   </tr>
 
   <tr>
@@ -928,9 +936,9 @@
     <td> </td>
   </tr>
 
- <tr>
+  <tr>
     <td>pdf:fit-page=<var>geometry</var></td>
-     <td><var>Geometry</var> specifies the scaling dimensions for resizing when the PDF is being read. The geometry is either WxH{%} or page size. No offsets are allowed. (introduced in IM 6.8.8-8)</td>
+    <td><var>Geometry</var> specifies the scaling dimensions for resizing when the PDF is being read. The geometry is either WxH{%} or page size. No offsets are allowed. (introduced in IM 6.8.8-8)</td>
   </tr>
 
   <tr>
@@ -953,9 +961,9 @@
     <td> </td>
   </tr>
 
-   <tr>
+  <tr>
     <td>pdf:thumbnail=<var>false</var></td>
-     <td>Skip writing a thumbnail when saving a PDF file.</td>
+    <td>Skip writing a thumbnail when saving a PDF file.</td>
   </tr>
 
   <tr>
@@ -975,7 +983,7 @@
 
   <tr>
     <td>png:color-type=<var>value</var></td>
-     <td>Desired bit-depth and color-type for PNG output.  You can force the 
+    <td>Desired bit-depth and color-type for PNG output.  You can force the 
     PNG encoder to use a different bit-depth and color-type than it would have
     normally selected, but only if this does not cause any loss of image
     quality. Any attempt to reduce image quality is treated as an error and no
@@ -994,56 +1002,58 @@
   <tr>
     <td>png:compression-filter=<var>value</var></td>
     <td>Valid values are 0 through 9. 0-4 are the corresponding PNG filters,
-   5 means adaptive filtering except for images with a colormap, 6 means
-   adaptive filtering for all images, 7 means MNG "loco" compression, 8 means
-   Z_RLE strategy with adaptive filtering, and 9 means Z_RLE strategy with no
-   filtering.</td>
+    5 means adaptive filtering except for images with a colormap, 6 means
+    adaptive filtering for all images, 7 means MNG "loco" compression, 8 means
+    Z_RLE strategy with adaptive filtering, and 9 means Z_RLE strategy with no
+    filtering.</td>
   </tr>
 
   <tr>
     <td>png:compression-level=<var>value</var></td>
     <td>Valid values are 0 through 9, with 0 providing the least, but fastest
-       compression and 9 usually providing the best and always the slowest.</td>
+    compression and 9 usually providing the best and always the slowest.</td>
   </tr>
 
   <tr>
     <td>png:compression-strategy=<var>value</var></td>
     <td>Valid values are 0 through 4, meaning default, filtered, huffman_only,
-   rle, and fixed ZLIB compression strategy. If you are using an old zlib
-   that does not support Z_RLE (before 1.2.0) or Z_FIXED (before 1.2.2.2),
-   values 3 and 4, respectively, will use the zlib default strategy
-   instead.</td>
+    rle, and fixed ZLIB compression strategy. If you are using an old zlib
+    that does not support Z_RLE (before 1.2.0) or Z_FIXED (before 1.2.2.2),
+    values 3 and 4, respectively, will use the zlib default strategy
+    instead.</td>
   </tr>
 
   <tr>
     <td>png:format=<var>value</var></td>
     <td> valid values are <var>png8</var>, <var>png24</var>,
-   <var>png32</var>, <var>png48</var>,
-   <var>png64</var>, and <var>png00</var>.
-   This property is useful for specifying
-   the specific PNG format to be used, when the usual method of prepending the
-   format name to the output filename is inconvenient, such as when writing
-   a PNG-encoded ICO file or when using <a href="mogrify.html">mogrify</a>.
-   Value = <var>png8</var> reduces the number of colors to 256,
-   only one of which may be fully transparent, if necessary.  The other
-   values do not force any reduction of quality; it is an error to request
-   a format that cannot represent the image data without loss (except that
-   it is allowed to reduce the bit-depth from 16 to 8 for all formats).
-   Value = <var>png24</var> and <var>png48</var>
-   allow transparency, only if a single color is fully transparent and that
-   color does not also appear in an opaque pixel; such transparency is
-   written in a PNG <code>tRNS</code> chunk.
-   Value = <var>png00</var> causes the image to inherit its
-   color-type and bit-depth from the input image, if the input was also
-   a PNG.</td>
+    <var>png32</var>, <var>png48</var>,
+    <var>png64</var>, and <var>png00</var>.
+    This property is useful for specifying
+    the specific PNG format to be used, when the usual method of prepending the
+    format name to the output filename is inconvenient, such as when writing
+    a PNG-encoded ICO file or when using <a href="mogrify.html">mogrify</a>.
+    Value = <var>png8</var> reduces the number of colors to 256,
+    only one of which may be fully transparent, if necessary.  The other
+    values do not force any reduction of quality; it is an error to request
+    a format that cannot represent the image data without loss (except that
+    it is allowed to reduce the bit-depth from 16 to 8 for all formats).
+    Value = <var>png24</var> and <var>png48</var>
+    allow transparency, only if a single color is fully transparent and that
+    color does not also appear in an opaque pixel; such transparency is
+    written in a PNG <code>tRNS</code> chunk.
+    Value = <var>png00</var> causes the image to inherit its
+    color-type and bit-depth from the input image, if the input was also
+    a PNG.</td>
   </tr>
 
   <tr>
     <td>png:exclude-chunk=<var>value</var></td>
+    <td> </td>
+  </tr>
 
   <tr>
     <td>png:include-chunk=<var>value</var></td>
-     <td>ancillary chunks to be excluded from or included in PNG output.
+    <td>ancillary chunks to be excluded from or included in PNG output.
 
     <p>The <var>value</var> can be the name of a PNG chunk-type such
     as <var>bKGD</var>, a comma-separated list of chunk-names
@@ -1062,8 +1072,8 @@
     the PNG file.  Because the list is processed from left to right, you
     can achieve this with a single define:</p>
 
-<pre class="highlight"><code>-define png:include-chunk=none,gAMA
-</code></pre>
+    <pre class="highlight"><code>-define png:include-chunk=none,gAMA
+    </code></pre>
 
     <p>As a special case, if the <code>sRGB</code> chunk is not excluded and
     the PNG encoder recognizes that the image contains the sRGB ICC profile,
@@ -1082,10 +1092,10 @@
     <code>tRNS</code> chunk isn't written anyhow, and there is no effect
     on the PNG colortype of the output image.</p>
 
-    <p>The <a href="command-line-options.html#strip">-strip</a> option does the equivalent of the
-    following for PNG output:</p>
+    <p>The <a href="command-line-options.html#strip">-strip</a>
+    option does the equivalent of the following for PNG output:</p>
 
-<pre class="highlight"><code>-define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date</code></pre>
+    <pre class="highlight"><code>-define png:exclude-chunk=EXIF,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date</code></pre>
 
     <p>The default behavior is to include all known PNG ancillary chunks
     plus ImageMagick's private <code>vpAg</code> ("virtual page") chunk,
@@ -1107,13 +1117,13 @@
 
   <tr>
     <td>png:ignore-crc[=<var>true</var>]</td>
-     <td>When you know your image has no CRC or ADLER32 errors, this can speed 
-     up decoding. It is also helpful in debugging bug reports from "fuzzers".</td>
+    <td>When you know your image has no CRC or ADLER32 errors, this can speed 
+    up decoding. It is also helpful in debugging bug reports from "fuzzers".</td>
   </tr>
 
   <tr>
     <td>png:preserve-colormap[=<var>true</var>]</td>
-     <td>Use the existing image->colormap. Normally the PNG encoder will
+    <td>Use the existing image->colormap. Normally the PNG encoder will
     try to optimize the palette, eliminating unused entries and putting
     the transparent colors first.  If this flag is set, that behavior
     is suppressed.</td>
@@ -1121,7 +1131,7 @@
 
   <tr>
     <td>png:preserve-iCCP[=<var>true</var>]</td>
-     <td>By default, the PNG decoder and encoder examine any ICC profile
+    <td>By default, the PNG decoder and encoder examine any ICC profile
     that is present, either from an <code>iCCP</code> chunk in the PNG
     input or supplied via an option, and if the profile is recognized
     to be the sRGB profile, converts it to the <code>sRGB</code> chunk.
@@ -1138,7 +1148,7 @@
 
   <tr>
     <td>png:swap-bytes[=<var>true</var>]</td>
-     <td>The PNG specification requires that any multi-byte integers be stored 
+    <td>The PNG specification requires that any multi-byte integers be stored 
     in network byte order (MSB-LSB endian).  This option allows you to
     fix any invalid PNG files that have 16-bit samples stored incorrectly
     in little-endian order (LSB-MSB).  The "-define png:swap-bytes" option
@@ -1148,43 +1158,43 @@
 
   <tr>
     <td>ps:imagemask</td>
-     <td>If the ps:imagemask flag is defined, the PS3 and EPS3 coders will
+    <td>If the ps:imagemask flag is defined, the PS3 and EPS3 coders will
     create Postscript files that render bilevel images with the Postscript
     imagemask operator instead of the image operator.</td>
   </tr>
 
   <tr>
     <td>psd:additional-info=all|selective</td>
-     <td>This option should only be used when converting from a PSD file to
-     another PSD file. This should be placed after the image is read. The two
-     options are 'all' and 'selective'. The 'selective' option will preserve
-     all additional information that is not related to the geometry of the
-     image. The 'all' option should only be used when the geometry of the
-     image has not been changed. This option is helpful when transferring
-     non-simple layers, such as adjustment layers from the input PSD file to
-     the output PSD file. If this option is not used, the additional
-     information will not be preserved. This define is available as of
-     Imagemagick version 6.9.5-8.
+    <td>This option should only be used when converting from a PSD file to
+    another PSD file. This should be placed after the image is read. The two
+    options are 'all' and 'selective'. The 'selective' option will preserve
+    all additional information that is not related to the geometry of the
+    image. The 'all' option should only be used when the geometry of the
+    image has not been changed. This option is helpful when transferring
+    non-simple layers, such as adjustment layers from the input PSD file to
+    the output PSD file. If this option is not used, the additional
+    information will not be preserved. This define is available as of
+    Imagemagick version 6.9.5-8.
     </td>
   </tr>
 
   <tr>
     <td>psd:alpha-unblend=off</td>
-     <td>Disable new automatic un-blending of transparency with the base image
-     for the flattened layer 0 before adding the alpha channel to the output
-     image. This define must be placed before the input psd image. (Available
-     as of IM 6.9.2.5). The automatic un-blending is new to IM 6.9.2.5 and
-     prevents the transparency from being applied twice in the output
-     image. This option should be set before reading the image.</td>
+    <td>Disable new automatic un-blending of transparency with the base image
+    for the flattened layer 0 before adding the alpha channel to the output
+    image. This define must be placed before the input psd image. (Available
+    as of IM 6.9.2.5). The automatic un-blending is new to IM 6.9.2.5 and
+    prevents the transparency from being applied twice in the output
+    image. This option should be set before reading the image.</td>
   </tr>
 
   <tr>
     <td>psd:preserve-opacity-mask=<var>true</var></td>
-     <td>This option should only be used when converting from a PSD file to
-     another PSD file. It will preserve the opacity mask of a layer and add it
-     back to the layer when the image is saved. Setting this to 'true' will
-     enable this feature. This define is available as of Imagemagick version
-     6.9.5-10.
+    <td>This option should only be used when converting from a PSD file to
+    another PSD file. It will preserve the opacity mask of a layer and add it
+    back to the layer when the image is saved. Setting this to 'true' will
+    enable this feature. This define is available as of Imagemagick version
+    6.9.5-10.
     </td>
   </tr>
 
@@ -1248,15 +1258,15 @@
   <tr>
     <td>tiff:tile-geometry=<var>WxH</var></td>
     <td>Set the tile size for pyramid tiffs. Requires the suffix
-        PTIF: before the outputname.</td>
+    PTIF: before the outputname.</td>
   </tr>
 
   <tr>
-   <td colspan=2><p></p></td>
+    <td colspan=2><p></p></td>
   </tr>
 
   <tr>
-   <td colspan=2><p></p></td>
+    <td colspan=2><p></p></td>
   </tr>
 
   <tr>
@@ -1265,176 +1275,176 @@
 
   <tr>
     <td>caption:max-pointsize=<var>pointsize</var></td>
-     <td>Limit the maximum point size</td>
+   <td>Limit the maximum point size</td>
   </tr>
 
-   <tr>
+  <tr>
     <td>gradient:angle=<var>angle (in degrees)</var></td>
-     <td>For a linear gradient, this specifies the direction of 
-     the gradient going from color1 to color2 in a clockwise 
-     positive manner relative to north (up). For a radial 
-     gradient, this specifies the rotation of the gradient in a 
-     clockwise positive manner from its normal X-Y orientation.
-      Supported in Imagemagick 6.9.2-5.</td>
+    <td>For a linear gradient, this specifies the direction of 
+    the gradient going from color1 to color2 in a clockwise 
+    positive manner relative to north (up). For a radial 
+    gradient, this specifies the rotation of the gradient in a 
+    clockwise positive manner from its normal X-Y orientation.
+    Supported in Imagemagick 6.9.2-5.</td>
    </tr>
 
-   <tr>
-   	 <td>gradient:bounding-box=<var>WxH+X+Y</var></td>
-     <td>Limit the gradient to a larger or smaller region than 
-     the image dimensions. If the region defined by the bounding 
-     box is smaller than the image, then color1 will be the color 
-     of the background.
-      Supported in Imagemagick 6.9.2-5.</td>
-   </tr>
+  <tr>
+    <td>gradient:bounding-box=<var>WxH+X+Y</var></td>
+    <td>Limit the gradient to a larger or smaller region than 
+    the image dimensions. If the region defined by the bounding 
+    box is smaller than the image, then color1 will be the color 
+    of the background.
+    Supported in Imagemagick 6.9.2-5.</td>
+  </tr>
 
-   <tr>
+  <tr>
     <td>gradient:center=<var>x,y</var></td>
-     <td>Specify the coordinates of the center point for the 
-     radial gradient. The default is the center of the image.
-      Supported in Imagemagick 6.9.2-5.</td>
-   </tr>
+    <td>Specify the coordinates of the center point for the 
+    radial gradient. The default is the center of the image.
+    Supported in Imagemagick 6.9.2-5.</td>
+  </tr>
 
-    <tr>
+  <tr>
     <td>gradient:direction=<var>value</var></td>
-     <td>Specify the direction of the linear gradient towards 
-     the top/bottom/left/right or diagonal corners. The choices are: 
-     NorthWest, North, Northeast, West, East, SouthWest, South, SouthEast.
-      Supported in Imagemagick 6.9.2-5.</td>
+    <td>Specify the direction of the linear gradient towards 
+    the top/bottom/left/right or diagonal corners. The choices are: 
+    NorthWest, North, Northeast, West, East, SouthWest, South, SouthEast.
+    Supported in Imagemagick 6.9.2-5.</td>
    </tr>
 
-     <tr>
+  <tr>
     <td>gradient:extent=<var>value</var></td>
-     <td>Specify the shape of an image centered radial gradient. 
-     The choices are: Circle, Diagonal, Ellipse, Maximum, Minimum.
-     Circle and Maximum draw a circular radial gradient even for 
-     rectangular shaped images of radius equal to the larger of 
-     the half-width and half-height of the image. The Circle and 
-     Maximum options are both equivalent to the default radial 
-     gradient. The Minimum option draws a circular radial gradient 
-     even for rectangular shaped images of radius equal to the 
-     smaller of the half-width and half-height of the image. 
-     The Diagonal option draws a circular radial gradient even 
-     for rectangular shaped images of radius equal to the 
-     half-diagonal of the image. The Ellipse options draws an 
-     elliptical radial gradient for rectangular shaped images of  
-     radii equal to half the width and half the height of the image.
-      Supported in Imagemagick 6.9.2-5.</td>
+    <td>Specify the shape of an image centered radial gradient. 
+    The choices are: Circle, Diagonal, Ellipse, Maximum, Minimum.
+    Circle and Maximum draw a circular radial gradient even for 
+    rectangular shaped images of radius equal to the larger of 
+    the half-width and half-height of the image. The Circle and 
+    Maximum options are both equivalent to the default radial 
+    gradient. The Minimum option draws a circular radial gradient 
+    even for rectangular shaped images of radius equal to the 
+    smaller of the half-width and half-height of the image. 
+    The Diagonal option draws a circular radial gradient even 
+    for rectangular shaped images of radius equal to the 
+    half-diagonal of the image. The Ellipse options draws an 
+    elliptical radial gradient for rectangular shaped images of  
+    radii equal to half the width and half the height of the image.
+    Supported in Imagemagick 6.9.2-5.</td>
    </tr>
 
- <tr>
+  <tr>
     <td>gradient:radii=<var>x,y</var></td>
-     <td>Specify the x and y radii of the gradient. If the 
-     x radius and the y radius are equal, the shape of the 
-     radial gradient will be a circle. If they differ, then 
-     the shape will be an ellipse. The default values are the 
-     maximum of the half width and half height of the image.
-      Supported in Imagemagick 6.9.2-5.</td>
-   </tr>
+    <td>Specify the x and y radii of the gradient. If the 
+    x radius and the y radius are equal, the shape of the 
+    radial gradient will be a circle. If they differ, then 
+    the shape will be an ellipse. The default values are the 
+    maximum of the half width and half height of the image.
+    Supported in Imagemagick 6.9.2-5.</td>
+  </tr>
 
-   <tr>
+  <tr>
     <td>gradient:vector=<var>x1,y1,x2,y2</var></td>
-     <td>Specify the direction of the linear gradient going from 
-     vector1 (x1,y1) to vector2 (x2,y2). Color1 (fromColor) will be 
-     located at vector position x1,y1 and color2 (toColor) will be 
-     located at vector position x2,y2.
-      Supported in Imagemagick 6.9.2-5.</td>
-   </tr>
+    <td>Specify the direction of the linear gradient going from 
+    vector1 (x1,y1) to vector2 (x2,y2). Color1 (fromColor) will be 
+    located at vector position x1,y1 and color2 (toColor) will be 
+    located at vector position x2,y2.
+    Supported in Imagemagick 6.9.2-5.</td>
+  </tr>
 
   <tr>
     <td>histogram:unique-colors=<var>false</var></td>
-     <td>Suppress the textual listing of the image's unique colors.</td>
-   </tr>
+    <td>Suppress the textual listing of the image's unique colors.</td>
+  </tr>
 
   <tr>
     <td>pango:align=<var>left|center|right</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
   <tr>
     <td>pango:auto-dir=<var>true|false</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
   <tr>
     <td>pango:ellipsize=<var>start|middle|end</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
   <tr>
     <td>pango:gravity-hint=<var>natural|strong|line</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
   <tr>
     <td>pango:hinting=<var>none|auto|full</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
   <tr>
     <td>pango:indent=<var>points</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
-   <tr>
+  <tr>
     <td>pango:justify=<var>true|false</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
-   <tr>
+  <tr>
     <td>pango:language=<var>en_US|others</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
-   <tr>
+  <tr>
     <td>pango:markup=<var>true|false</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
-   <tr>
+  <tr>
     <td>pango:single-paragraph=<var>true|false</var></td>
-     <td></td>
-   </tr>
+    <td></td>
+  </tr>
 
   <tr>
     <td>pango:wrap=<var>word|char|word-char</var></td>
-     <td></td>
-   </tr>
-
-   <tr>
-    <td>pixel:compliance=<var>value</var></td>
-     <td>Set the "pixel:" output format according to several standards.
-     The choices are SVG, None, Undefined, MVG, X11, XPM. The default
-     list values for (s)RGB colors in the form of (s)rgb(r,g,b) or 
-     (s)rgba(r,g,b,a). Color names will no longer be presented. For sRGB or 
-     RGB colors, the SVG, X11, XPM and None options lists color names, 
-     if they exist. The MVG and Undefined options list hex values. When 
-     colors are presented or converted to hue-based colorspaces, the values 
-     listed will be integers for hue and percents for the other two components. 
-     For other colorspaces, values may be listed as either percents or 
-     fractional value. Setting the depth to 8 will limit values to the 8-bit 
-     range, except for hue-based colors.</td>
-   </tr>
-
-    <tr>
-    <td>txt:compliance=<var>value</var></td>
-     <td>Set the "txt:" format for the values in parentheses according to 
-     several standards. The choices are svg, none, undefined, mvg, x11, xpm.
-     The default will list values for (s)RGB colors in the quantum range.
-     The SVG, X11, XPM, MVG and None options lists values in the 8-bit range 
-     for all Q-level compiles. The undefined option also lists values in the 
-     quantum range. When colors are presented or converted to hue-based 
-     colorspaces, the values listed will be integers for hue and percents for 
-     the other two components. For other colorspaces, values may be listed as 
-     either percents or fractional value. Setting the depth to 8 will limit 
-     values to the 8-bit range, except for hue-based colors.</td>
-   </tr>
-
-<tr>
-   <td colspan=2><p></p></td>
+    <td></td>
   </tr>
 
-   <tr>
-   <td colspan=2><p></p></td>
+  <tr>
+    <td>pixel:compliance=<var>value</var></td>
+    <td>Set the "pixel:" output format according to several standards.
+    The choices are SVG, None, Undefined, MVG, X11, XPM. The default
+    list values for (s)RGB colors in the form of (s)rgb(r,g,b) or 
+    (s)rgba(r,g,b,a). Color names will no longer be presented. For sRGB or 
+    RGB colors, the SVG, X11, XPM and None options lists color names, 
+    if they exist. The MVG and Undefined options list hex values. When 
+    colors are presented or converted to hue-based colorspaces, the values 
+    listed will be integers for hue and percents for the other two components. 
+    For other colorspaces, values may be listed as either percents or 
+    fractional value. Setting the depth to 8 will limit values to the 8-bit 
+    range, except for hue-based colors.</td>
+  </tr>
+
+  <tr>
+    <td>txt:compliance=<var>value</var></td>
+    <td>Set the "txt:" format for the values in parentheses according to 
+    several standards. The choices are svg, none, undefined, mvg, x11, xpm.
+    The default will list values for (s)RGB colors in the quantum range.
+    The SVG, X11, XPM, MVG and None options lists values in the 8-bit range 
+    for all Q-level compiles. The undefined option also lists values in the 
+    quantum range. When colors are presented or converted to hue-based 
+    colorspaces, the values listed will be integers for hue and percents for 
+    the other two components. For other colorspaces, values may be listed as 
+    either percents or fractional value. Setting the depth to 8 will limit 
+    values to the 8-bit range, except for hue-based colors.</td>
+   </tr>
+
+  <tr>
+    <td colspan=2><p></p></td>
+  </tr>
+
+  <tr>
+    <td colspan=2><p></p></td>
   </tr>
 
   <tr>
@@ -1442,17 +1452,17 @@
   </tr>
 
   <tr>
-   <td colspan=2><p></p></td>
+    <td colspan=2><p></p></td>
   </tr>
 
   <tr>
     <td>identify:locate=<var>minimum|maximum</var></td>
-     <td>Locate the coordinates of one or more image minimum or maximum.</td>
+   <td>Locate the coordinates of one or more image minimum or maximum.</td>
   </tr>
 
   <tr>
     <td>identify:limit=<var>number</var></td>
-     <td>Locate the coordinates for the number of minima or maxima specified.</td>
+    <td>Locate the coordinates for the number of minima or maxima specified.</td>
   </tr>
 
 </table>
@@ -1479,7 +1489,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -1487,4 +1497,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:12 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:40 -->
\ No newline at end of file
diff --git a/www/develop.html b/www/develop.html
index 3c7fd6b..666ced4 100644
--- a/www/develop.html
+++ b/www/develop.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Develop</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -97,7 +97,7 @@
 <dl class="row">
   <dt class="col-md-4"><a class="anchor" id="c"></a>C</dt>
 
-<dd class="col-md-8">Use <a href="magick-wand.html">MagickWand</a> to convert, compose, and edit images from the C language.  There is also the low-level <a href="magick-core.html">MagickCore</a> library for wizard-level developers.</dd>
+<dd class="col-md-8">Use the thread-safe <a href="magick-wand.html">MagickWand</a> library to convert, compose, and edit images from the C language.  There is also the low-level thread-safe <a href="magick-core.html">MagickCore</a> library for wizard-level developers.</dd>
 
   <dt class="col-md-4"><a class="anchor" id="ch"></a>Ch</dt>
 
@@ -109,7 +109,7 @@
 
   <dt class="col-md-4"><a class="anchor" id="c__"></a>C++</dt>
 
-<dd class="col-md-8"><a href="magick++.html">Magick++</a> provides an object-oriented C++ interface to ImageMagick.  See <a href="../Magick++/tutorial/Magick++_tutorial.pdf">A Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++.  We include the <a href="../Magick++/tutorial/Magick++_tutorial.odt">source</a> if you want to correct, enhance, or expand the tutorial.</dd>
+<dd class="col-md-8"><a href="magick++.html">Magick++</a> provides a thread-safe object-oriented C++ interface to ImageMagick.  See <a href="../Magick++/tutorial/Magick++_tutorial.pdf">A Gentle Introduction to Magick++</a> for an introductory tutorial to Magick++.  We include the <a href="../Magick++/tutorial/Magick++_tutorial.odt">source</a> if you want to correct, enhance, or expand the tutorial.</dd>
 
   <dt class="col-md-4"><a class="anchor" id="go"></a>GO</dt>
   <dd class="col-md-8"><a href="https://github.com/gographics/imagick">GoImagick</a> is a set of Go bindings to ImageMagick's MagickWand and MagickCore C APIs.</dd>
@@ -235,7 +235,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -243,3 +243,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 18:40 -->
\ No newline at end of file
diff --git a/www/display.html b/www/display.html
index 8ccadf6..f514dd49 100644
--- a/www/display.html
+++ b/www/display.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Display</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -599,7 +599,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -607,4 +607,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:35 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:04 -->
\ No newline at end of file
diff --git a/www/distribute-pixel-cache.html b/www/distribute-pixel-cache.html
index 80f6cf1..9453c0d 100644
--- a/www/distribute-pixel-cache.html
+++ b/www/distribute-pixel-cache.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Distributed Pixel Cache</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -128,7 +128,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -136,4 +136,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:41 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:59 -->
\ No newline at end of file
diff --git a/www/download.html b/www/download.html
index ee2fa8b..bc4b484 100644
--- a/www/download.html
+++ b/www/download.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Download</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -114,17 +114,17 @@
 
   <tr>
     <td><a href= "https://imagemagick.org/download/binaries/magick">magick</a></td>
-    <td>Complete portable application on Linux, no installation required.  Just download and run.  AppImages require <a href="https://github.com/AppImage/AppImageKit/wiki/FUSE">FUSE</a> to run. Many distributions have a working FUSE setup out-of-the-box. However if it is not working for you, you may need to install and configure FUSE manually.</td>
+    <td>Complete portable application on Linux, no installation required.  Just download and run.  AppImages require <a href="https://github.com/AppImage/AppImageKit/wiki/FUSE">FUSE</a> and <code>libc</code> to run. Many distributions have a working FUSE setup out-of-the-box. However if it is not working for you, you must install and configure FUSE manually.</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.10-39.x86_64.rpm">ImageMagick-7.0.10-39.x86_64.rpm</a></td>
-    <td>Redhat / CentOS 7.1 x86_64 RPM</td>
+      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.10-53.x86_64.rpm">ImageMagick-7.0.10-53.x86_64.rpm</a></td>
+    <td>Redhat / CentOS 8.3 x86_64 RPM</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.10-39.x86_64.rpm">ImageMagick-libs-7.0.10-39.x86_64.rpm</a></td>
-    <td>Redhat / CentOS 7.1 x86_64 RPM</td>
+      <td><a href= "https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.10-53.x86_64.rpm">ImageMagick-libs-7.0.10-53.x86_64.rpm</a></td>
+    <td>Redhat / CentOS 8.3 x86_64 RPM</td>
   </tr>
 
   <tr>
@@ -153,9 +153,9 @@
 
 <p>ImageMagick RPM's are self-installing.  Simply type the following command and you're ready to start using ImageMagick:</p>
 
-<ul><pre><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-7.0.10-39.x86_64.rpm</span></pre></ul>
+<ul><pre><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-7.0.10-53.x86_64.rpm</span></pre></ul>
 <p>You'll need the libraries as well:</p>
-<ul><pre><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-libs-7.0.10-39.x86_64.rpm</span></pre></ul>
+<ul><pre><span class="crtprompt">$ </span><span class='crtin'>rpm -Uvh ImageMagick-libs-7.0.10-53.x86_64.rpm</span></pre></ul>
 
 <p>Note, if there are missing dependencies, install them from the <a href="https://fedoraproject.org/wiki/EPEL">EPEL</a> repo.</p>
 
@@ -191,7 +191,7 @@
 
 <h2><a class="anchor" id="macosx"></a>Mac OS X Binary Release</h2>
 
-<p>We recommend <a href="https://brew.sh">Homebrew</a> which custom builds ImageMagick in your environment (some users prefer <a href="https://macports.org">MacPorts</a>).  Download HomeBrew and type:</p>
+<p>We recommend <a href="https://brew.sh">Homebrew</a> which provides pre-built binaries for Mac (some users prefer <a href="https://macports.org">MacPorts</a>).  Download HomeBrew and type:</p>
 
 <ul><pre class="highlight"><code>brew install imagemagick</code></pre></ul>
 
@@ -199,7 +199,7 @@
 
 <ul><pre class="highlight"><code>brew install ghostscript</code></pre></ul>
 
-<p>The <code>brew</code> command downloads ImageMagick and many of its delegate libraries (e.g. JPEG, PNG, Freetype, etc.) and configures, builds, and installs ImageMagick automagically.  Alternatively, you can download the ImageMagick Mac OS X distribution we provide:</p>
+<p>The <code>brew</code> command downloads and installs ImageMagick with many of its delegate libraries (e.g. JPEG, PNG, Freetype, etc).  Homebrew <a href="https://github.com/Homebrew/homebrew-core/issues/31510">no longer allows</a> configurable builds; if you need different compile options (e.g. librsvg support), you can download the ImageMagick Mac OS X distribution we provide:</p>
 
 <div class="table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-hover">
@@ -273,7 +273,7 @@
 
 <p>To run the script:</p>
 <ul><pre class="highlight"><code>./imagemagick_compile.sh <var>VERSION</var></code></pre></ul>
-<p>where <var>VERSION</var> is the version of ImageMagick you want to compile (i.e.: 7.0.10-39, svn, ...)</p>
+<p>where <var>VERSION</var> is the version of ImageMagick you want to compile (i.e.: 7.0.10-53, svn, ...)</p>
 
 <p>This script compiles ImageMagick as a static library to be included in iOS projects and adds support for</p>
 <ul>
@@ -322,7 +322,7 @@
   </thead>
   <tbody>
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x64-dll.exe">ImageMagick-7.0.10-39-Q16-HDRI-x64-dll.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x64-dll.exe">ImageMagick-7.0.10-53-Q16-HDRI-x64-dll.exe</a></td>
     <td>Win64 dynamic at 16 bits-per-pixel component</td>
   </tr>
   </tbody>
@@ -341,92 +341,92 @@
   </thead>
   <tbody>
   <tr>
-        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-x64-static.exe">ImageMagick-7.0.10-39-Q16-x64-static.exe</a></td>
+        <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-x64-static.exe">ImageMagick-7.0.10-53-Q16-x64-static.exe</a></td>
    <td>Win64 static at 16 bits-per-pixel component</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q8-x64-dll.exe">ImageMagick-7.0.10-39-Q8-x64-dll.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q8-x64-dll.exe">ImageMagick-7.0.10-53-Q8-x64-dll.exe</a></td>
    <td>Win64 dynamic at 8 bits-per-pixel component</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q8-x64-static.exe">ImageMagick-7.0.10-39-Q8-x64-static.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q8-x64-static.exe">ImageMagick-7.0.10-53-Q8-x64-static.exe</a></td>
     <td>Win64 static at 8 bits-per-pixel component</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-x64-dll.exe">ImageMagick-7.0.10-39-Q16-x64-dll.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-x64-dll.exe">ImageMagick-7.0.10-53-Q16-x64-dll.exe</a></td>
    <td>Win64 dynamic at 16 bits-per-pixel component</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x64-dll.exe">ImageMagick-7.0.10-39-Q16-HDRI-x64-dll.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x64-dll.exe">ImageMagick-7.0.10-53-Q16-HDRI-x64-dll.exe</a></td>
     <td>Win64 dynamic at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x64-static.exe">ImageMagick-7.0.10-39-Q16-HDRI-x64-static.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x64-static.exe">ImageMagick-7.0.10-53-Q16-HDRI-x64-static.exe</a></td>
     <td>Win64 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-x86-dll.exe">ImageMagick-7.0.10-39-Q16-x86-dll.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-x86-dll.exe">ImageMagick-7.0.10-53-Q16-x86-dll.exe</a></td>
     <td>Win32 dynamic at 16 bits-per-pixel component</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-x86-static.exe">ImageMagick-7.0.10-39-Q16-x86-static.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-x86-static.exe">ImageMagick-7.0.10-53-Q16-x86-static.exe</a></td>
     <td>Win32 static at 16 bits-per-pixel component</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q8-x86-dll.exe">ImageMagick-7.0.10-39-Q8-x86-dll.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q8-x86-dll.exe">ImageMagick-7.0.10-53-Q8-x86-dll.exe</a></td>
     <td>Win32 dynamic at 8 bits-per-pixel component</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q8-x86-static.exe">ImageMagick-7.0.10-39-Q8-x86-static.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q8-x86-static.exe">ImageMagick-7.0.10-53-Q8-x86-static.exe</a></td>
     <td>Win32 static at 8 bits-per-pixel component</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x86-dll.exe">ImageMagick-7.0.10-39-Q16-HDRI-x86-dll.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x86-dll.exe">ImageMagick-7.0.10-53-Q16-HDRI-x86-dll.exe</a></td>
     <td>Win32 dynamic at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-Q16-HDRI-x86-static.exe">ImageMagick-7.0.10-39-Q16-HDRI-x86-static.exe</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-Q16-HDRI-x86-static.exe">ImageMagick-7.0.10-53-Q16-HDRI-x86-static.exe</a></td>
     <td>Win32 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q16-x64.zip">ImageMagick-7.0.10-39-portable-Q16-x64.zip</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q16-x64.zip">ImageMagick-7.0.10-53-portable-Q16-x64.zip</a></td>
     <td>Portable Win64 static at 16 bits-per-pixel component.  Just copy to your host and run (no installer, no Windows registry entries).</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q16-x86.zip">ImageMagick-7.0.10-39-portable-Q16-x86.zip</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q16-x86.zip">ImageMagick-7.0.10-53-portable-Q16-x86.zip</a></td>
     <td>Portable Win32 static at 16 bits-per-pixel component.  Just copy to your host and run (no installer, no Windows registry entries).</td>
   </tr>
 I
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q8-x64.zip">ImageMagick-7.0.10-39-portable-Q8-x64.zip</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q8-x64.zip">ImageMagick-7.0.10-53-portable-Q8-x64.zip</a></td>
     <td>Portable Win64 static at 8 bits-per-pixel component.  Just copy to your host and run (no installer, no Windows registry entries).</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q8-x86.zip">ImageMagick-7.0.10-39-portable-Q8-x86.zip</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q8-x86.zip">ImageMagick-7.0.10-53-portable-Q8-x86.zip</a></td>
     <td>Portable Win32 static at 8 bits-per-pixel component.  Just copy to your host and run (no installer, no Windows registry entries).</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q16-HDRI-x64.zip">ImageMagick-7.0.10-39-portable-Q16-HDRI-x64.zip</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q16-HDRI-x64.zip">ImageMagick-7.0.10-53-portable-Q16-HDRI-x64.zip</a></td>
     <td>Portable Win64 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled.  Just copy to your host and run (no installer, no Windows registry entries).</td>
   </tr>
 
   <tr>
-      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-39-portable-Q16-HDRI-x86.zip">ImageMagick-7.0.10-39-portable-Q16-HDRI-x86.zip</a></td>
+      <td><a href= "https://imagemagick.org/download/binaries/ImageMagick-7.0.10-53-portable-Q16-HDRI-x86.zip">ImageMagick-7.0.10-53-portable-Q16-HDRI-x86.zip</a></td>
     <td>Portable Win32 static at 16 bits-per-pixel component with <a href="high-dynamic-range.html">high dynamic-range imaging</a> enabled.  Just copy to your host and run (no installer, no Windows registry entries).</td>
   </tr>
 
@@ -473,7 +473,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -481,4 +481,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:15 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:51 -->
\ No newline at end of file
diff --git a/www/escape.html b/www/escape.html
index d9ce28f..a6f0df8 100644
--- a/www/escape.html
+++ b/www/escape.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Format and Print Image Properties</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -964,7 +964,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -972,4 +972,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:43 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:41 -->
\ No newline at end of file
diff --git a/www/examples.html b/www/examples.html
index 7c1b3bf..24c66b4 100644
--- a/www/examples.html
+++ b/www/examples.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Examples of ImageMagick Usage</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -115,7 +115,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -123,3 +123,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 19:25 -->
\ No newline at end of file
diff --git a/www/exception.html b/www/exception.html
index 68bf0da..de70b73 100644
--- a/www/exception.html
+++ b/www/exception.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Exceptions</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -303,7 +303,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -311,3 +311,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/export.html b/www/export.html
index 7e95995..9858c80 100644
--- a/www/export.html
+++ b/www/export.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Export Classification</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -115,7 +115,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -123,4 +123,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:15 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/formats.html b/www/formats.html
index 4c240bc..17ed421 100644
--- a/www/formats.html
+++ b/www/formats.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Formats</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -97,7 +97,7 @@
 
 <p>To get a complete listing of which image formats are supported on your system, type</p>
 
-<pre class="highlight"><code>identify -list format
+<pre class="highlight"><code>magick identify -list format
 </code></pre>
 
 <p>On some platforms, ImageMagick automagically processes these extensions: .gz for Zip compression, .Z for Unix compression, .bz2 for block compression, and .pgp for PGP encryption. For example, a PNM image called image.pnm.gz is automagically uncompressed.</p>
@@ -110,7 +110,7 @@
 (e.g. TIFF, PSD, JPG, JP2).  To determine the colorspace of your image, use
 this command:</p>
 
-<pre class="highlight"><code>-> identify -verbose image.jpg
+<pre class="highlight"><code>-> magick identify -verbose image.jpg
 Image: image.jpg
 Format: JPEG (Joint Photographic Experts Group JFIF format)
 ...
@@ -144,22 +144,13 @@
 directly in LAB space, but ImageMagick permits it and generally returns
 reasonable results.</p>
 
-<p>Prior to IM 6.7.8-2, the A and B channels has a discontinuity, making them
-non-linear. As such to process such images, you needed to first convert the
-colorspace some other linear colorspace, before apply your processing
-operator. Afterward you can transform back to the LAB colorspace.  For
-example,</p>
-
-<pre class="highlight"><code>  magick lab.tif -colorspace RGB -resize 50% -colorspace Lab resize.jpg
-</code></pre>
-
 <h2><a class="anchor" id="supported"></a>Supported Image Formats</h2>
 
 <p>ImageMagick supports reading over 100 major file formats (not
 including sub-formats). The following table provides a summary of
 the supported image formats.</p>
 
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-hover">
   <tbody>
   <tr>
@@ -444,6 +435,13 @@
   </tr>
 
   <tr>
+    <td>FARBFELD</td>
+    <td>RW</td>
+    <td>Farbfeld lossless image format</td>
+    <td>sRGB 16-bit RGBA lossless image format</td>
+  </tr>
+   
+  <tr>
     <td>FAX</td>
     <td>RW</td>
     <td>Group 3 TIFF</td>
@@ -465,6 +463,13 @@
   </tr>
 
   <tr>
+    <td>FL32</td>
+    <td>RW</td>
+    <td>FilmLight floating point image format</td>
+    <td></td>
+  </tr>
+   
+  <tr>
     <td><a href="https://flif.info/">FLIF</a></td>
     <td>RW</td>
     <td>Free Lossless Image Format</td>
@@ -640,10 +645,10 @@
   </tr>
 
   <tr>
-    <td><a href="https://jpeg.org/jpegxl/index.html">JXL</a></td>
+    <td><a href="https://jpeg.org/jpegxl">JXL</a></td>
     <td>RW</td>
     <td><a href="https://arxiv.org/ftp/arxiv/papers/1908/1908.03565.pdf">JPEG XL image coding system</a></td>
-    <td>Requires the <a href="https://github.com/google/brunsli">brunsli</a> delegate library.</td>
+    <td>Requires the <a href="https://gitlab.com/wg1/jpeg-xl.git">JPEG XL</a> delegate library.</td>
   </tr>
 
   <tr>
@@ -895,6 +900,13 @@
   </tr>
 
   <tr>
+    <td><a href="http://netpbm.sourceforge.net/doc/pfm.html">PHM</a></td>
+    <td>RW</td>
+    <td>Portable float map format 16-bit half</td>
+    <td> </td>
+  </tr>
+
+  <tr>
     <td>PICON</td>
     <td>RW</td>
     <td>Personal Icon</td>
@@ -1308,6 +1320,13 @@
   </tr>
 
   <tr>
+    <td><a href="https://yaml.org/">YAML</a></td>
+    <td>W</td>
+    <td>human-readable data-serialization language</td>
+    <td>Include additional attributes about the image with these defines: <a href="command-line-options.html#define">-define yaml:locate</a>, <a href="command-line-options.html#define">-define yaml:limit</a>, <a href="command-line-options.html#define">-define yaml:moments</a>, or <a href="command-line-options.html#define">-define yaml:features</a>.  Specify the JSON model schema version with <a href="command-line-options.html#define">-define yaml:version</a>.  The current version is 1.0.</td>
+  </tr>
+
+  <tr>
     <td>YCbCr</td>
     <td>RW</td>
     <td>Raw Y, Cb, and Cr samples</td>
@@ -1330,12 +1349,12 @@
   </tbody>
 </table>
 </div>
-
+<br/>
 <h2><a class="anchor" id="pseudo"></a>Pseudo-image Formats</h2>
 
 <p>ImageMagick supports a number of image format specifications which refer to images prepared via an algorithm, or input/output targets. The following table lists these pseudo-image formats:</p>
 
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-hover">
   <tr>
     <th>Tag</th>
@@ -1571,11 +1590,12 @@
 </table>
 </div>
 
+<br/>
 <h2><a class="anchor" id="builtin-images"></a>Built-in Images</h2>
 
 <p>ImageMagick includes a number of built-in (embedded) images which may be referenced as if they were an image file. The <code>magick:</code> format tag may be used via the syntax <code>magick:</code><var>name</var> to request an embedded image (e.g. <code>magick:logo</code>). For backwards compatibility, the image specifications <code>GRANITE:</code>, <code>LOGO:</code>, <code>NETSCAPE:</code>, and <code>ROSE:</code> may also be used to request images with those names.</p>
 
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-hover">
   <tr>
     <th>Tag</th>
@@ -1621,11 +1641,12 @@
 
 </table></div>
 
+<br/>
 <h2><a class="anchor" id="builtin-patterns"></a>Built-in Patterns</h2>
 
 <p>ImageMagick includes a number of built-in (embedded) patterns which may be referenced as if they were an image file. The <code>pattern:</code> format tag may be used via the syntax <code>pattern:</code><var>name</var> to request an embedded pattern (e.g. <code>pattern:checkerboard</code>). The pattern size is controlled with the <a href="command-line-options.html#size">-size</a> command line option.</p>
 
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-hover">
   <tr>
     <th>Tag</th>
@@ -2013,11 +2034,12 @@
   </tr>
 </table></div>
 
+<br/>
 <h2><a class="anchor" id="embedded"></a>Embedded Image Profiles</h2>
 
 <p>ImageMagick provides a number of format identifiers which are used to add, remove, and save embedded profiles for images which can support embedded profiles. Image types which may contain embedded profiles are TIFF, JPEG, and PDF.</p>
 
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-hover">
   <tbody>
   <tr>
@@ -2100,7 +2122,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -2108,4 +2130,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:18 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:34 -->
\ No newline at end of file
diff --git a/www/fx.html b/www/fx.html
index 7f374b4..a6f1d29 100644
--- a/www/fx.html
+++ b/www/fx.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - The FX Special Effects Image Operator</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -477,7 +477,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -485,4 +485,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:57 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:03 -->
\ No newline at end of file
diff --git a/www/gradient.html b/www/gradient.html
index e42fd22..4495a86 100644
--- a/www/gradient.html
+++ b/www/gradient.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Image Gradients</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -274,7 +274,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -282,4 +282,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:10 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:44 -->
\ No newline at end of file
diff --git a/www/high-dynamic-range.html b/www/high-dynamic-range.html
index 7a26c41..400d035 100644
--- a/www/high-dynamic-range.html
+++ b/www/high-dynamic-range.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - High Dynamic-Range Images</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -117,7 +117,7 @@
 
 <p>To verify HDRI is properly configured, look for "HDRI" as a feature:</p>
 
-<pre class="highlight"><code>identify -version
+<pre class="highlight"><code>magick identify -version
 Features: HDRI
 </code></pre>
 </div>
@@ -141,7 +141,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -149,4 +149,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:24 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:20 -->
\ No newline at end of file
diff --git a/www/history.html b/www/history.html
index 7e0f65a..7580415 100644
--- a/www/history.html
+++ b/www/history.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - History</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -104,11 +104,11 @@
 
 <p>The next generation of ImageMagick, version 5, started when Bob Friesenhahn contacted me and suggested I improve the application programming interface so users could leverage the image-processing algorithms from other languages or scripts.  Bob also wrote a C++ wrapper for ImageMagick called Magick++, and began contributing enhancements such as the module loader facility, automatic file identification, and test suites.  In the mean-time, the project picked up a few other notable contributors: Glenn Randers-Pehrson, William Radcliffe, and Leonard Rosenthol.  By now, ImageMagick was utilized by tens of thousands of users, who reacted gruffly when a new release broke an existing API call or script.  The other members of the group wanted to freeze the API and command line, but I felt ImageMagick was not quite what I had envisioned it could be. Bob and the others created a fork of ImageMagick while I continued to develop ImageMagick.</p>
 
-<p>I did not work alone for long.  Anthony Thyssen contacted me about deficiencies in the ImageMagick command line programs.  He pointed out that the command line was confusing when dealing with more than one image. He suggested an orderly, well-defined method for dealing with the command line, and this became ImageMagick version 6 (the current release). His efforts are detailed on his web pages, <a href="https://legacy.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>.  I highly recommend that you peruse his site. He has illustrated the power of ImageMagick in ways that even I did not know were possible.</p>
+<p>I did not work alone for long.  Anthony Thyssen contacted me about deficiencies in the ImageMagick command line programs.  He pointed out that the command line was confusing when dealing with more than one image. He suggested an orderly, well-defined method for dealing with the command line, and this became ImageMagick version 6. His efforts are detailed on his web pages, <a href="https://legacy.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>.  I highly recommend that you peruse his site. He has illustrated the power of ImageMagick in ways that even I did not know were possible.</p>
 
 <p>Another notable contributor, Fred Weinhaus, makes available a plethora of command-line <a href="http://www.fmwconcepts.com/imagemagick/">scripts</a> that perform geometric transforms, blurs, sharpens, edging, noise removal, and color manipulations.  Glenn Randers-Pehrson is our PNG guru and makes other valuable contributions. Dirk Lemstra made, and continues to make, numerous improvements to make ImageMagick more robust under Windows and distributes a .NET wrapper, <a href="https://github.com/dlemstra/Magick.NET">Magick.NET</a>.</p>
 
-<p>It has been more than 25 years since ImageMagick was first conceived, and it looks likely that it will be here for another 25 and beyond. The command line and the application programming interface are stable, but there is still work to do.  The design of ImageMagick is an evolutionary process, with the design and implementation efforts serving to influence and guide further progress in the other.  With <a href="../index.html">ImageMagick version 7</a>, we aim to improve the design based on lessons learned from the version 6 implementation.</p>
+<p>The design of ImageMagick is an evolutionary process, with the design and implementation efforts serving to influence and guide further progress in the other.  With ImageMagick <a href="../index.html">version 7</a>, we improved the design based on lessons learned from the version 6 implementation.  ImageMagick was originally designed to display RGB images to an X Windows server.  Over time we extended support to RGBA images and then to the CMYK and CMYKA image format.  With ImageMagick version 7, we extend support to arbitrary colorspaces with an arbitrary number of pixel channels.  In addition, ImageMagick 7 stores pixel channels as floats permitting out of band values (e.g. negative) and reduces rounding error.</p>
 
 <p>Cristy<br />Principal ImageMagick Architect</p>
 </div>
@@ -132,7 +132,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -140,3 +140,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/identify.html b/www/identify.html
index ce678bd..f0d107a 100644
--- a/www/identify.html
+++ b/www/identify.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Identify</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -93,18 +93,18 @@
 <h1 class="text-center">Image Format and Characteristics</h1>
 <p class="text-center"><a href="identify.html#usage">Example Usage</a> • <a href="identify.html#options">Option Summary</a></p>
 
-<p class="lead magick-description">The <code>identify</code> program describes the format and characteristics of one or more image files. It also reports if an image is incomplete or corrupt. The information returned includes the image number, the file name, the width and height of the image, whether the image is colormapped or not, the number of colors in the image, the number of bytes in the image, the format of the image (JPEG, PNM, etc.), and finally the number of seconds it took to read and process the image.  Many more attributes are available with the verbose option.  See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>identify</code> command or see below for example usages of the command.</p>
+<p class="lead magick-description">The <code>magick identify</code> program describes the format and characteristics of one or more image files. It also reports if an image is incomplete or corrupt. The information returned includes the image number, the file name, the width and height of the image, whether the image is colormapped or not, the number of colors in the image, the number of bytes in the image, the format of the image (JPEG, PNM, etc.), and finally the number of seconds it took to read and process the image.  Many more attributes are available with the verbose option.  See <a href="command-line-processing.html">Command Line Processing</a> for advice on how to structure your <code>magick identify</code> command or see below for example usages of the command.</p>
 
 <h2><a class="anchor" id="usage"></a>Example Usage</h2>
 
-<p>We list a few examples of the <code>identify</code> command here to illustrate its usefulness and ease of use. To get started, lets identify an image in the JPEG format:</p>
+<p>We list a few examples of the <code>magick identify</code> command here to illustrate its usefulness and ease of use. To get started, lets identify an image in the JPEG format:</p>
 
 <pre class="highlight"><code>-> magick identify rose.jpg
 rose.jpg JPEG 70x46 70x46+0+0 8-bit sRGB 2.36KB 0.000u 0:00.000
 </code></pre>
 
-<p>By default, <code>identify</code> provides the following output:</p>
-
+<p>By default, <code>magick identify</code> provides the following output:</p>
+
 <p><code>Filename[frame #] image-format widthxheight page-widthxpage-height+x-offset+y-offset colorspace user-time elapsed-time</code></p>
 
 <p>Next, we look at the same image in greater detail:</p>
@@ -215,11 +215,11 @@
 <pre class="highlight"><code>magick identify -precision 5 -define identify:locate=maximum -define identify:limit=3 image.png
 </code></pre>
 
-<p>You can find additional examples of using <code>identify</code> in <a href="https://legacy.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>.</p>
+<p>You can find additional examples of using <code>magick identify</code> in <a href="https://legacy.imagemagick.org/Usage/">Examples of ImageMagick Usage</a>.</p>
 
 <h2><a class="anchor" id="options"></a>Option Summary</h2>
 
-<p>The <code>identify</code> command recognizes these options.  Click on an option to get more details about how that option works.</p>
+<p>The <code>magick identify</code> command recognizes these options.  Click on an option to get more details about how that option works.</p>
 
 <table class="table table-sm table-hover">
   <tbody>
@@ -468,7 +468,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -476,4 +476,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:10 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:26 -->
\ No newline at end of file
diff --git a/www/import.html b/www/import.html
index 182302c..24b88ff 100644
--- a/www/import.html
+++ b/www/import.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Import</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -460,7 +460,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -468,3 +468,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/index.html b/www/index.html
index d36a4b8..7f92262 100644
--- a/www/index.html
+++ b/www/index.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Convert, Edit, or Compose Bitmap Images</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -97,9 +97,9 @@
 <p>ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under a derived Apache 2.0 <a href="license.html">license</a>.</p>
 <p>ImageMagick utilizes multiple computational threads to increase performance and can read, process, or write mega-, giga-, or tera-pixel image sizes.</p>
 
-<p>The current release is ImageMagick <a href="download.html">7.0.10-39</a>.  It runs on <a href="download.html#unix">Linux</a>, <a href="download.html#windows">Windows</a>, <a href="download.html#macosx">Mac Os X</a>, <a href="download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
+<p>The current release is ImageMagick <a href="download.html">7.0.10-53</a>.  It runs on <a href="download.html#unix">Linux</a>, <a href="download.html#windows">Windows</a>, <a href="download.html#macosx">Mac Os X</a>, <a href="download.html#iOS">iOS</a>, <a href="https://github.com/cherryleafroad/Android-ImageMagick7">Android</a> OS, and others.</p>
 
-<p>The authoritative ImageMagick web site is <a href="../index.html">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick" target="_blank">https://github.com/ImageMagick</a>.  We maintain a source code mirror at <a href="https://gitlab.com/ImageMagick" target="_blank">https://gitlab.com/ImageMagick</a>.  We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
+<p>The authoritative ImageMagick web site is <a href="../index.html">https://imagemagick.org</a>. The authoritative source code repository is <a href="https://github.com/ImageMagick/ImageMagick" target="_blank">https://github.com/ImageMagick/ImageMagick</a>.  We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a>.</p>
 
 <h2><a class="anchor" id="features"></a>Features and Capabilities</h2>
 <p>Here are just a few <a href="examples.html">examples</a> of what ImageMagick can do for you:</p>
@@ -110,6 +110,10 @@
     <td>create a GIF animation sequence from a group of images.</td>
   </tr>
   <tr>
+    <td><a href="command-line-options.html#bilateral-blur">Bilateral blur</a></td>
+    <td>non-linear, edge-preserving, and noise-reducing smoothing filter.</td>
+  </tr>
+  <tr>
     <td><a href="color-management.html">Color management</a></td>
     <td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
   </tr>
@@ -271,7 +275,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -279,4 +283,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:09 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:50 -->
\ No newline at end of file
diff --git a/www/install-source.html b/www/install-source.html
index 7b53fe0..1af96dc 100644
--- a/www/install-source.html
+++ b/www/install-source.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Install from Source</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -95,7 +95,7 @@
 
 <p class="lead magick-description">Chances are, ImageMagick is already installed on your computer if you are using some flavor of Unix, and its likely not installed if you are using some form of Windows.  In either case, you can type the following to find out:</p>
 
-<pre class="highlight"><code>identify -version
+<pre class="highlight"><code>magick identify -version
 </code></pre>
 
 <p>If the <a href="identify.html">identify</a> program executes and identifies itself as ImageMagick, you may not need to install ImageMagick from source unless you want to add support for additional image formats or upgrade to a newer version.  You also have the option of installing a pre-compiled <a href="download.html">binary release</a>.  However, if you still want to install from source, choose a platform, <a href="install-source.html#unix">Unix</a> or <a href="install-source.html#windows">Windows</a>.  Before installing from source, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.</p>
@@ -106,10 +106,13 @@
 
 <p>ImageMagick builds on a variety of Unix and Unix-like operating systems including Linux, Solaris, FreeBSD, Mac OS X, and others.  A compiler is required and fortunately almost all modern Unix systems have one.  Clone the source repository:</p>
 
-<pre><span class="crtprompt">$ </span><span class='crtin'>git clone git@github.com:ImageMagick/ImageMagick.git ImageMagick-7.0.10</span></pre>
+<pre><span class="crtprompt">$ </span><span class='crtin'>git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.0.10</span></pre>
+<p>Or download <a href="https://imagemagick.org/download/ImageMagick.tar.gz">ImageMagick.tar.gz</a> from <a href="../download">imagemagick.org</a> or a <a href="download.html">mirror</a> and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
+
 <p>Next configure and compile ImageMagick.  Note the <a href="https://en.wikipedia.org/wiki/Pkg-config">pkg-config</a> script is required so that ImageMagick can find certain optional delegate libraries on your system.  To configure, type:</p>
 
-<pre><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span></pre><p>For advanced users, we recommend a modules build:</p>
+<pre><span class="crtprompt">$ </span><span class='crtin'>cd ImageMagick-7.0.10</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>./configure</span><span class='crtout'><br/></span><span class="crtprompt">$ </span><span class='crtin'>make</span></pre>
+<p>For advanced users, we recommend a modules build:</p>
 <pre><span class="crtprompt">$ </span><span class='crtin'>./configure --with-modules</span></pre><p>If ImageMagick configured and compiled without complaint, you are ready to install it on your system.  Administrator privileges are required to install.  To install, type</p>
 
 <pre class="highlight"><code>sudo make install
@@ -140,9 +143,10 @@
 
 <p>Clone the Github repo:<p>
 
-<pre class="highlight"><code>git clone git@github.com:ImageMagick/ImageMagick-Windows.git ImageMagick-Windows-7</code></pre>
+<pre class="highlight"><code>git clone https://github.com/ImageMagick/ImageMagick-Windows.git ImageMagick-Windows-7</code></pre>
 
-<p>and run <code>CloneRepositories.cmd</code>.<p>
+
+<p>and run <code>CloneRepositories.cmd</code>.  Or download <a href="https://imagemagick.org/download/windows">ImageMagick-Windows.zip</a> from <a href="https://imagemagick.org/download/windows">imagemagick.org</a> or a <a href="mirror.html">mirror</a> and verify the distribution against its <a href="https://imagemagick.org/download/digest.rdf">message digest</a>.</p>
 
 <pre class="highlight"><code>unzip ImageMagick-windows.zip</code></pre>
 <p> Unzip in a folder that does not need Admin permissions, otherwise Visual Studio will not be able to build the solution.<p> 
@@ -186,7 +190,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -194,4 +198,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:47 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:00 -->
\ No newline at end of file
diff --git a/www/jp2.html b/www/jp2.html
index 9acc99a..c83613e 100644
--- a/www/jp2.html
+++ b/www/jp2.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - JP2 Encoding Options</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -191,7 +191,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -199,4 +199,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:22 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:33 -->
\ No newline at end of file
diff --git a/www/license.html b/www/license.html
index 0fa7699..461564e 100644
--- a/www/license.html
+++ b/www/license.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - License</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -144,7 +144,7 @@
 
 <p>The legally binding and authoritative terms and conditions for use, reproduction, and distribution of ImageMagick follow:</p>
 
-<p>Copyright © 1999-2020 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.</p>
+<p>Copyright © 1999-2021 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available.</p>
 
 <p><b>1. Definitions</b>.</p>
 
@@ -237,7 +237,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -245,3 +245,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 18:44 -->
\ No newline at end of file
diff --git a/www/links.html b/www/links.html
index b9c2c46..c2759be 100644
--- a/www/links.html
+++ b/www/links.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Related Web Sites</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -195,7 +195,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -203,3 +203,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/magick++.html b/www/magick++.html
index 8c97b4f..bf7051c 100644
--- a/www/magick++.html
+++ b/www/magick++.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Magick++, C++ API</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -93,7 +93,7 @@
 <p class="text-center"><a href="magick++.html#documentation">Documentation</a> • <a href="magick++.html#get">Obtaining Magick++</a> • <a href="magick++.html#install">Installation</a> • <a href="magick++.html#bugs">Reporting Bugs</a></p>
 
 <a class="anchor" id="intro"></a>
-<p class="lead magick-description"><a href="https://imagemagick.org/api/Magick++/index.html">Magick++ API</a> is the object-oriented C++ API to the <a href="../index.html">ImageMagick</a> image-processing library.</p>
+<p class="lead magick-description"><a href="api/Magick++/index.html">Magick++ API</a> is the object-oriented C++ API to the <a href="../index.html">ImageMagick</a> image-processing library.</p>
 <p>Magick++ supports an object model which is inspired by <a href="perl-magick.html">PerlMagick</a>.
 Images support implicit reference counting so that copy constructors
 and assignment incur almost no cost. The cost of actually copying an
@@ -218,7 +218,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -226,4 +226,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:41 -->
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/magick-core.html b/www/magick-core.html
index 72785fc..ef0bb44 100644
--- a/www/magick-core.html
+++ b/www/magick-core.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickCore, Low-level C API</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -91,7 +91,7 @@
     <div class="magick-template">
 <div class="magick-header">
 <h1 class="text-center">MagickCore Image API for C</h1>
-<p  class="lead magick-description">The <a href="https://imagemagick.org/api/MagickCore/index.html">MagickCore API</a> is a low-level interface between the C programming language and the ImageMagick image processing libraries and is recommended for wizard-level programmers only.  Unlike the <a href="https://imagemagick.org/api/MagickWand/index.html">MagickWand</a> C API which uses only a few opaque types and accessors, with MagickCore you almost exlusively access the structure members directly.  A description of the MagickCore public methods are found here:</p>
+<p  class="lead magick-description">The <a href="api/MagickCore/index.html">MagickCore API</a> is a low-level interface between the C programming language and the ImageMagick image processing libraries and is recommended for wizard-level programmers only.  Unlike the <a href="api/MagickWand/index.html">MagickWand</a> C API which uses only a few opaque types and accessors, with MagickCore you almost exlusively access the structure members directly.  A description of the MagickCore public methods are found here:</p>
 
 <ul>
   <li><a href="api/magick.html">Initialize or Destroy the ImageMagick Environment</a></li>
@@ -150,17 +150,15 @@
 
 <p>After you write your MagickCore program, compile it like this:</p>
 
-<pre class="highlight"><code>cc -o core core.c `pkg-config --cflags --libs MagickWand`
-</code></pre>
+<ul><pre class="highlight"><code>cc -o core core.c `pkg-config --cflags --libs MagickWand`</code></pre></ul>
 
 <p>Set the <code>PKG_CONFIG_PATH</code> environment variable if ImageMagick is not in your default system path:</p>
 
-<pre class="highlight"><code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
-</code></pre>
+<ul><pre class="highlight"><code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig </code></pre></ul>
 
 <p>Here is a example program that utilizes the MagickCore API to get you started, <a href="https://imagemagick.org/source/core.c">core.c</a>. It reads a GIF image, creates a thumbnail, and writes it to disk in the PNG image format.</p>
 
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
 #include &lt;stdlib.h>
 #include &lt;string.h>
 #include &lt;time.h>
@@ -222,10 +220,10 @@
   exception=DestroyExceptionInfo(exception);
   MagickCoreTerminus();
   return(0);
-}</code></pre>
+}</code></pre></ul>
 <p><a class="anchor" id="image-view"></a>Now lets perform the same contrast enhancement while taking advantage of our dual or quad-core processing system by running the algorithm in parallel utilizing wand views.  The <a href="https://imagemagick.org/source/core/sigmoidal-contrast.c">sigmoidal-contrast.c</a> module reads an image, applies sigmoidal non-linearity contrast control, and writes the result to disk just like the previous contrast enhancement program, but now it does its work in parallel (assumes ImageMagick is built with OpenMP support).</p>
 
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
 #include &lt;stdlib.h>
 #include &lt;math.h>
 #include &lt;MagickCore/MagickCore.h>
@@ -341,7 +339,7 @@
   image_info=DestroyImageInfo(image_info);
   MagickCoreTerminus();
   return(0);
-}</code></pre>
+}</code></pre></ul>
 </div>
     </div>
   </main><!-- /.container -->
@@ -363,7 +361,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -371,4 +369,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 20:42 -->
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/magick-script.html b/www/magick-script.html
index 744bf39..13181b5 100644
--- a/www/magick-script.html
+++ b/www/magick-script.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Magick-script</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -1320,7 +1320,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -1328,4 +1328,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:11 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:05 -->
\ No newline at end of file
diff --git a/www/magick-vector-graphics.html b/www/magick-vector-graphics.html
index 230b848..6ff304f 100644
--- a/www/magick-vector-graphics.html
+++ b/www/magick-vector-graphics.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Magick Vector Graphics</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -914,7 +914,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -922,4 +922,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:32 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/magick-wand.html b/www/magick-wand.html
index 09a99f2..f5113a2 100644
--- a/www/magick-wand.html
+++ b/www/magick-wand.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - MagickWand, C API</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -91,7 +91,7 @@
     <div class="magick-template">
 <div class="magick-header">
 <h1 class="text-center">MagickWand Image API for C</h1>
-<p class="lead magick-description">The <a href="https://imagemagick.org/api/MagickWand/index.html">MagickWand API</a> is the recommended interface between the C programming language and the ImageMagick image processing libraries.  Unlike the <a href="https://imagemagick.org/api/MagickCore/index.html">MagickCore</a> C API, MagickWand uses only a few opaque types.  Accessors are available to set or get important wand properties.  A description of the MagickWand public methods are found here:</p>
+<p class="lead magick-description">The <a href="api/MagickWand/index.html">MagickWand API</a> is the recommended interface between the C programming language and the ImageMagick image processing libraries.  Unlike the <a href="api/MagickCore/index.html">MagickCore</a> C API, MagickWand uses only a few opaque types.  Accessors are available to set or get important wand properties.  A description of the MagickWand public methods are found here:</p>
 
 <ul>
   <li><a href="api/magick-wand.html">Magick Wand Methods</a></li>
@@ -108,17 +108,15 @@
 
 <p>After you write your MagickWand program, compile it like this:</p>
 
-<pre class="highlight"><code>cc -o wand wand.c `pkg-config --cflags --libs MagickWand`
-</code></pre>
+<ul><pre class="highlight"><code>cc -o wand wand.c `pkg-config --cflags --libs MagickWand`</code></pre></ul>
 
 <p>Set the <code>PKG_CONFIG_PATH</code> environment variable if ImageMagick is not in your default system path:</p>
 
-<pre class="highlight"><code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
-</code></pre>
+<ul><pre class="highlight"><code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig</code></pre></ul>
 
 <p>Here is a example program that utilizes the MagickWand API to get you started, <a href="https://imagemagick.org/source/wand.c">wand.c</a>. It reads an image, creates a thumbnail, and writes the result to disk.</p>
 
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
 #include &lt;stdlib.h>
 #include &lt;MagickWand/MagickWand.h>
 
@@ -173,11 +171,11 @@
   MagickWandTerminus();
   return(0);
 }
-</code></pre>
+</code></pre></ul>
 
 <p>Here is another program that shows one way to get and set image pixels with the MagickWand API, <a href="https://imagemagick.org/source/contrast.c">contrast.c</a>. It reads an image, applies sigmoidal non-linearity contrast control, and writes the result to disk.</p>
 
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
 #include &lt;stdlib.h>
 #include &lt;math.h>
 #include &lt;MagickWand/MagickWand.h>
@@ -283,10 +281,10 @@
   MagickWandTerminus();
   return(0);
 }
-</code></pre>
+</code></pre></ul>
 <p><a class="anchor" id="wand-view"></a>Now lets perform the same contrast enhancement while taking advantage of our dual or quad-core processing system by running the algorithm in parallel utilizing wand views.  The <a href="https://imagemagick.org/source/wand/sigmoidal-contrast.c">sigmoidal-contrast.c</a> module reads an image, applies sigmoidal non-linearity contrast control, and writes the result to disk just like the previous contrast enhancement program, but now it does its work in parallel (assumes ImageMagick is built with OpenMP support).</p>
 
-<pre class="pre-scrollable"><code>#include &lt;stdio.h>
+<ul><pre class="pre-scrollable"><code>#include &lt;stdio.h>
 #include &lt;stdlib.h>
 #include &lt;math.h>
 #include &lt;MagickWand/MagickWand.h>
@@ -392,7 +390,7 @@
   MagickWandTerminus();
   return(0);
 }
-</code></pre>
+</code></pre></ul>
 <p><a href="../MagickWand/">MagickWand Examples in C</a> illustrates how to use the ImageMagick MagickWand API. Each example is presented as a C function, complete with headers, so that it can be copied to a file and then included in your own C project.</p>
 </div>
     </div>
@@ -415,7 +413,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -423,4 +421,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:57 -->
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/magick.html b/www/magick.html
index bc737d8..2a9eded 100644
--- a/www/magick.html
+++ b/www/magick.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Magick</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -228,6 +228,11 @@
   </tr>
 
   <tr>
+    <td><a href="command-line-options.html#bilateral-blur">-bilateral-blur <var>geometry</var></a></td>
+    <td>non-linear, edge-preserving, and noise-reducing smoothing filter</td>
+  </tr>
+
+  <tr>
     <td><a href="command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
     <td>force all pixels below the threshold into black</td>
   </tr>
@@ -1359,7 +1364,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -1367,4 +1372,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:29 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 18:51 -->
\ No newline at end of file
diff --git a/www/miff.html b/www/miff.html
index ed1b03b..c78ee52 100644
--- a/www/miff.html
+++ b/www/miff.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Magick Image File Format</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -279,7 +279,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -287,4 +287,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 20:43 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/mirror.html b/www/mirror.html
index 1763628..b02350f 100644
--- a/www/mirror.html
+++ b/www/mirror.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Mirror</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -92,25 +92,17 @@
 <div class="magick-header">
 <h1 class="text-center">ImageMagick Mirrors</h1>
 <p class="lead magick-description">ImageMagick source and binary distributions are available from a variety of FTP and Web mirrors around the world listed below.  ImageMagick stable and development source releases are also available from <a href="https://github.com/ImageMagick">Git</a>.  Before you download, you may want to review recent <a href="changelog.html">changes</a> to the ImageMagick distribution.  The authoritative source code repository is <a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a>.</p>
-<p>The latest release of ImageMagick is version 7.0.10-39.</p>
+<p>The latest release of ImageMagick is version 7.0.10-53.</p>
 <dl>
   <dt>Germany</dt>
     <dd><a href="https://mirror.dogado.de/imagemagick/">https://mirror.dogado.de/imagemagick/</a></dd>
     <dd><a href="https://mirror.checkdomain.de/imagemagick/">http://mirror.checkdomain.de/imagemagick/</a></dd>
     <dd><a href="ftp://mirror.checkdomain.de/imagemagick/">ftp://mirror.checkdomain.de/imagemagick/</a></dd>
-  <dt>Japan</dt>
-    <dd><a href="ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/">ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/</a></dd>
-  <dt>Netherlands</dt>
-    <dd><a href="ftp://ftp.nluug.nl/pub/ImageMagick/">ftp://ftp.nluug.nl/pub/ImageMagick</a></dd>
-    <dd><a href="http://ftp.nluug.nl/ImageMagick/">http://ftp.nluug.nl/ImageMagick/</a></dd>
-  <dt>Poland</dt>
-    <dd><a href="ftp://sunsite.icm.edu.pl/packages/ImageMagick/">ftp://sunsite.icm.edu.pl/packages/ImageMagick/</a></dd>
-    <dd><a href="rsync://ftp.tpnet.pl/pub/graphics/ImageMagick/">rsync://ftp.tpnet.pl/pub/graphics/ImageMagick/</a></dd>
   <dt>Sweden</dt>
     <dd><a href="https://ftp.acc.umu.se/mirror/imagemagick.org/ftp/">https://ftp.acc.umu.se/mirror/imagemagick.org/ftp/</a></dd>
     <dd><a href="rsync://ftp.acc.umu.se/mirror/imagemagick.org/ftp/">rsync://ftp.acc.umu.se/mirror/imagemagick.org/ftp/</a></dd>
   <dt>United States</dt>
-    <dd><a href="../download">../download</a></dd>
+    <dd><a href="https://imagemagick.org/download/">../download</a></dd>
     <dd><a href="https://github.com/ImageMagick">https://github.com/ImageMagick</a> (Git)</dd>
     <dd><a href="https://gitlab.com/ImageMagick">https://gitlab.com/ImageMagick</a> (Git Mirror)</dd>
   <dt>Select Binaries </dt>
@@ -143,7 +135,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -151,4 +143,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:46 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:06 -->
\ No newline at end of file
diff --git a/www/mogrify.html b/www/mogrify.html
index 9709e08..c0e6453 100644
--- a/www/mogrify.html
+++ b/www/mogrify.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Mogrify</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -226,6 +226,11 @@
   </tr>
 
   <tr>
+    <td><a href="command-line-options.html#bilateral-blur">-bilateral-blur <var>geometry</var></a></td>
+    <td>non-linear, edge-preserving, and noise-reducing smoothing filter</td>
+  </tr>
+
+  <tr>
     <td><a href="command-line-options.html#black-threshold">-black-threshold <var>value</var></a></td>
     <td>force all pixels below the threshold into black</td>
   </tr>
@@ -1359,7 +1364,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -1367,4 +1372,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:22 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:27 -->
\ No newline at end of file
diff --git a/www/montage.html b/www/montage.html
index 51536e2..352e570 100644
--- a/www/montage.html
+++ b/www/montage.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Montage</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -137,7 +137,7 @@
 
 <h5>Ashlar Pseudo-image Format</h5>
 <p>Use the Ashlar pseudo-image format to lay out an image sequence in continuous irregular courses. By default, a reasonable canvas size and border width is determined relative to the image collection you provide. You can explicitedly set the canvas size and border width by appending to the filename, e.g. ashlar:canvas.png[1024x768+4+4]. By default, alignment is along the left edge. Use -define ashlar:best-fit=true to align on both the left and right edges. You can label the image tiles with, for example, -label %f. Here is an example command:
-<pre class="highlight"><code>convert '*.png' -resize 320x320 -label %f ashlar:ashlar.png</code></pre>
+<pre class="highlight"><code>magick '*.png' -resize 320x320 -label %f ashlar:ashlar.png</code></pre>
 <p>This is designed to quickly view a collection of images. To have more control over the layout of your image tiles, use the <code>montage</code> command instead.</p>
 
 <h2><a class="anchor" id="options"></a>Option Summary</h2>
@@ -681,7 +681,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -689,4 +689,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:03 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:51 -->
\ No newline at end of file
diff --git a/www/motion-picture.html b/www/motion-picture.html
index 70087ac..cfc3b20 100644
--- a/www/motion-picture.html
+++ b/www/motion-picture.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Motion Picture Digital Images</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -179,12 +179,12 @@
 
 <p> To determine which properties are associated with your DPX image, use this command for example:</p>
 
-<pre class="highlight"><code>identify -verbose bluebells.dpx
+<pre class="highlight"><code>magick identify -verbose bluebells.dpx
 </code></pre>
 
 <p>To identify a particular property, try this:</p>
 
-<pre class="highlight"><code>identify -format "%[dpx:television.time.code]" bluebells.dpx
+<pre class="highlight"><code>magick identify -format "%[dpx:television.time.code]" bluebells.dpx
 </code></pre>
 
 <p>Finally, to set a property:</p>
@@ -225,7 +225,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -233,4 +233,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 20:44 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:04 -->
\ No newline at end of file
diff --git a/www/news.html b/www/news.html
index e748afb..6758644 100644
--- a/www/news.html
+++ b/www/news.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - News</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -139,7 +139,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -147,3 +147,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 18:09 -->
\ No newline at end of file
diff --git a/www/opencl.html b/www/opencl.html
index 97a0fc7..b0a9f77 100644
--- a/www/opencl.html
+++ b/www/opencl.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Parallel Execution with OpenCL</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -141,7 +141,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -149,4 +149,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:34 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:48 -->
\ No newline at end of file
diff --git a/www/openmp.html b/www/openmp.html
index 698dfe9..9d572fc 100644
--- a/www/openmp.html
+++ b/www/openmp.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Parallel Execution with OpenMP</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -93,8 +93,8 @@
 <h1 class="text-center">Threads of Execution</h1>
 <p class="lead magick-description">Many of ImageMagick's internal algorithms are threaded to take advantage of speed-ups offered by the multicore processor chips and <a href="http://www.openmp.org">OpenMP</a>. OpenMP, is an API specification for parallel programming. If your compiler supports OpenMP (e.g. gcc, Visual Studio 2005) directives, ImageMagick automatically includes support. To verify, look for the OpenMP feature of ImageMagick with this command:</p>
 <pre class="highlight"><code>-> magick identify -version
-Version: ImageMagick 7.0.10-7 2020-09-04 Q16 https://imagemagick.org
-Copyright: © 1999-2020 ImageMagick Studio LLC
+Version: ImageMagick 7.0.10-50 2021-01-04 Q16 https://imagemagick.org
+Copyright: © 1999-2021 ImageMagick Studio LLC
 Features: OpenMP(4.5)</code></pre>
 <p>With OpenMP enabled, most ImageMagick algorithms execute on all the cores on your system in parallel.  ImageMagick typically divides the work so that each thread processes 64 rows of pixels. As rows are completed, OpenMP assigns more chunks of pixel rows to each thread until the algorithm completes. For example, if you have a quad-core system, and attempt to resize an image, the resizing takes place on 4 cores (8 if hyperthreading is enabled).</p>
 <p>You can further increase performance by reducing lock contention with the <a href="http://goog-perftools.sourceforge.net/doc/tcmalloc.html">tcmalloc</a> memory allocation library.  To enable, add <code>--with-tcmalloc</code> to the <code>configure</code> command-line when you build ImageMagick.</p>
@@ -132,7 +132,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -140,4 +140,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:01 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:50 -->
\ No newline at end of file
diff --git a/www/perl-magick.html b/www/perl-magick.html
index 45c1c0d..c538021 100644
--- a/www/perl-magick.html
+++ b/www/perl-magick.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - PerlMagick, Perl API</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -471,6 +471,12 @@
   </tr>
 
   <tr>
+    <td>BilateralSmoothing</td>
+    <td>geometry=&gt;<i>geometry</i>, width=&gt;<i>integer</i>, height=&gt;<i>integer</i>, intensity-sigma=&gt;<i>double</i>, spatial-sigma=&gt;<i>double</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}</td>
+    <td>a non-linear, edge-preserving, and noise-reducing smoothing filter for images.  It replaces the intensity of each pixel with a weighted average of intensity values from nearby pixels. This weight is based on a Gaussian distribution.  The weights depend not only on Euclidean distance of pixels, but also on the radiometric differences (e.g., range differences, such as color intensity, depth distance, etc.). This preserves sharp edges. The default value for the intensity and spatial sigmas are <var>2*diameter</var> and <var>0.5*diameter</var> respectively.</td>
+  </tr>
+
+  <tr>
     <td>BlackThreshold</td>
     <td>threshold=&gt;<i>color</i>, channel=&gt;{All, Default, Alpha, Black, Blue, CMYK, Cyan, Gray, Green, Index, Magenta, Alpha, Red, RGB, Yellow}</td>
     <td>force all pixels below the threshold intensity into black</td>
@@ -2621,7 +2627,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -2629,4 +2635,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:22 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:20 -->
\ No newline at end of file
diff --git a/www/porting.html b/www/porting.html
index 65126d9..4c82641 100644
--- a/www/porting.html
+++ b/www/porting.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Porting to ImageMagick Version 7</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -109,7 +109,7 @@
 options, and more global use of 'image properties' (more commonly known as
 'percent escapes' in option arguments. </p>
 
-<p>ImageMagick version 7 is available now as a <a href="../download">production</a> release.</p>
+<p>ImageMagick version 7 is available now as a <a href="https://imagemagick.org/download/">production</a> release.</p>
 
 <p>Now that ImageMagick version 7 is released, we continue to support and enhance version 6 for a minimum of 10 years.</p>
 
@@ -122,10 +122,10 @@
 
 <pre class="pre-scrollable"><code>for (y=0; y &lt; (ssize_t) image->rows; y++)
 {
-  register IndexPacket
+  IndexPacket
     *indexes;
 
-  register PixelPacket
+  PixelPacket
     *q;
 
   q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -152,11 +152,11 @@
     status=MagickFalse;
 }</code></pre>
 
-<p>ImageMagick version 7 supports any number of channels from 1 to 32 (and beyond) and simplifies access with a single method that returns an array of pixel channels of type Quantum.   Source code that compiles against prior versions of ImageMagick requires refactoring to work with ImageMagick version 7.  We illustrate with an example.  Let's naively refactor the version 6 code snippet from above so it works with the ImageMagick version 7 API:</p>
+<p>ImageMagick version 7 supports any number of channels from 1 to 64 (and beyond) and simplifies access with a single method that returns an array of pixel channels of type Quantum.   Source code that compiles against prior versions of ImageMagick requires refactoring to work with ImageMagick version 7.  We illustrate with an example.  Let's naively refactor the version 6 code snippet from above so it works with the ImageMagick version 7 API:</p>
 
 <pre class="pre-scrollable"><code>for (y=0; y &lt; (ssize_t) image->rows; y++)
 {
-  register Quantum
+  Quantum
     *q;
 
   q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -187,7 +187,7 @@
 
 <pre class="pre-scrollable"><code>for (y=0; y &lt; (ssize_t) image->rows; y++)
 {
-  register Quantum
+  Quantum
     *q;
 
   q=GetCacheViewAuthenticPixels(image_view,0,y,image->columns,1,exception);
@@ -198,7 +198,7 @@
     }
   for (x = 0; x &lt; (ssize_t) image->columns; x++)
   {
-    register ssize_t
+    ssize_t
       i;
 
     if (GetPixelWriteMask(image,q) &lt;= (QuantumRange/2))
@@ -372,7 +372,6 @@
 
 <p>The Bessel filter was removed as it is an alias for Jinc.  Use -filter Jinc instead.</p>
 
-
 <h2><a class="anchor" id="cli"></a>Shell API or Command-line Interface</h2>
 
 <p>As mentioned the primary focus of the changes to the Shell API or Command
@@ -683,7 +682,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -691,4 +690,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:07 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:45 -->
\ No newline at end of file
diff --git a/www/quantize.html b/www/quantize.html
index 4218afa..cfb89af 100644
--- a/www/quantize.html
+++ b/www/quantize.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Color Reduction Utilizing Adaptive Spatial Subdivision</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -233,7 +233,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -241,4 +241,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 23:15 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:47 -->
\ No newline at end of file
diff --git a/www/resources.html b/www/resources.html
index 78b5023..4671e38 100644
--- a/www/resources.html
+++ b/www/resources.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Resources</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -372,6 +372,10 @@
     <td>MAGICK_WIDTH_LIMIT</td>
     <td>Set the maximum <var>width</var> of an image.</td>
   </tr>
+  <tr>
+    <td>SOURCE_DATE_EPOCH</td>
+    <td>A UNIX timestamp, defined as the number of seconds, excluding leap seconds, since <code>01 Jan 1970 00:00:00 UTC</code>.</td>
+  </tr>
 </table></div>
 
 <p>Define arguments for the <code>MAGICK_MEMORY_LIMIT</code>, <code>MAGICK_DISK_LIMIT</code>, and <code>MAGICK_MEMORY_LIMIT</code> environment variables with SI prefixes (.e.g <code>100MB</code>). <code>MAGICK_WIDTH_LIMIT</code>, <code>MAGICK_HEIGHT_LIMIT</code> and <code>MAGICK_AREA_LIMIT</code> accepts pixel suffixes such as MP for mega-pixels (e.g. 100MP).</p>
@@ -397,7 +401,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -405,3 +409,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 18:40 -->
\ No newline at end of file
diff --git a/www/search.html b/www/search.html
index 1f06c95..3ca9a32 100644
--- a/www/search.html
+++ b/www/search.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Search</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -29,7 +29,7 @@
   <meta property='og:site_name' content='ImageMagick' />
   <meta property='og:description' content="Create, Edit, Compose, or Convert Bitmap Images" />
   <meta name="google-site-verification" content="_bMOCDpkx9ZAzBwb2kF3PRHbfUUdFj2uO8Jd1AXArz4" />
-  <link href="https://imagemagick.org/script/search.php" rel="canonical" />
+  <link href="search.html" rel="canonical" />
   <link href="../images/wand.png" rel="icon" />
   <link href="../images/wand.ico" rel="shortcut icon" />
   <link href="assets/magick.css" rel="stylesheet" />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -133,7 +133,7 @@
     <p><a href="security-policy.html">Security</a> •
     <a href="news.html">News</a>
      
-    <a href="https://imagemagick.org/script/search.php#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
+    <a href="search.html#"><img class="d-inline" id="wand" alt="And Now a Touch of Magick" width="16" height="16" src="../images/wand.ico"/></a>
      
     <a href="links.html">Related</a> •
      <a href="sitemap.html">Sitemap</a>
@@ -146,7 +146,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
diff --git a/www/security-policy.html b/www/security-policy.html
index b37c03d..56a3110 100644
--- a/www/security-policy.html
+++ b/www/security-policy.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Security Policy</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -94,7 +94,7 @@
 <p class="text-center"><a href="security-policy.html#policy">Security Policy </a> • <a href="security-policy.html#synchronize">Pixel Cache Synchronize Policy</a> • <a href="security-policy.html#zero-configuration">Zero Configuration Security Policy</a> • <a href="security-policy.html#other">Other Security Considerations</a></p>
 
 
-<p class="lead magick-description">ImageMagick best practices strongly encourages you to configure a security <a href="https://imagemagick.org/source/policy.xml">policy.xml</a> that suits your local environment.  The policy is open by default.  This affords maximum utility for ImageMagick installations that run in a sandboxed environment, perhaps in a Docker instance, or behind a firewall where security risks are greatly diminished as opposed to a public website.</p>
+<p class="lead magick-description">ImageMagick best practices strongly encourages you to configure a security <a href="https://imagemagick.org/source/policy.xml">policy</a> that suits your local environment.  The policy is open by default.  This affords maximum utility for ImageMagick installations that run in a sandboxed environment, perhaps in a Docker instance, or behind a firewall where security risks are greatly diminished as opposed to a public website.</p>
 
 <p>Security is a trade-off between a secure environment and convenience. If you want ImageMagick to be optimally secure, you could, for example, limit ImageMagick to only read or write web safe images (e.g. GIF, JPEG, PNG).   However, ImageMagick provides for a more secure option by adjusting the security policy per the requirements of your local environment or organizational policies. The security policy covers areas such as memory, which paths to read or write, how many images are permitted in an image sequence, how long a workflow can run, how much disk the image pixels can consume, a secret passphrase for remote connections, which coders are permitted or denied, and others. These policies should provide robust coverage to not only secure your environment per your requirements but also ensure ImageMagick remains a good citizen (e.g. prevent thrashing with large images) in your local environment.</p>
 
@@ -113,7 +113,7 @@
   &lt;policy domain="resource" name="file" value="768"/>
   &lt;policy domain="resource" name="thread" value="2"/>
   &lt;policy domain="resource" name="time" value="120"/>
-  &lt;policy domain="coder" rights="write" pattern="{HTTP,HTTPS,MVG,PS,EPS,PDF,XPS}" />
+  &lt;policy domain="coder" rights="write" pattern="{HTTP,HTTPS,MSVG,MVG,PS,EPS,PDF,XPS}" />
   &lt;policy domain="filter" rights="none" pattern="*" />
   &lt;policy domain="path" rights="none" pattern="@*"/>  &lt;!-- indirect reads not permitted -->
   &lt;policy domain="cache" name="memory-map" value="anonymous"/>
@@ -153,10 +153,26 @@
 <p>As of ImageMagick version 7.0.4-23, you can limit the maximum number of images in a sequence.  For example, to limit an image sequence to at most 64 frames, use:</p>
 <pre class="highlight"><code>&lt;policy domain="resource" name="list-length" value="64"/></code></pre>
 
+<p>For additional details about resource limits and the policy configuration file, read <a href="resources.html">Resources</a> and <a href="architecture.html">Architecture</a>.</p>
+
+<p>As of ImageMagick 7.0.6-0, you can programmatically set the ImageMagick security policy with SetMagickSecurityPolicy() (MagickCore) or MagickSetSecurityPolicy() (MagickWand).</p>
+
+<p>As of ImageMagick version 7.0.8-11, you can set a module security policy.  For example, to prevent Postscript or PDF interpretation, use:</p>
+<pre class="highlight"><code>&lt;policy domain="module" rights="none" pattern="{ps,pdf,xps}/></code></pre>
+
+<p>As of ImageMagick version 7.0-10-52, you can set a font policy.  Specify a path to a Unicode font that ImageMagick defaults to whenever the user does not specify a font preference:</p>
+<pre class="highlight"><code>&lt;policy domain="system" name="font" value="/usr/share/fonts/arial-unicode.ttf"/></code></pre>
+
 <p>You can verify your policy changes are in effect with this command:</p>
 
 <pre class="pre-scrollable">-> identify -list policy
 Path: ImageMagick-7/policy.xml
+  Policy: Cache
+    name: memory-map
+    value: anonymous
+  Policy: Cache
+    name: synchronize
+    value: true
   Policy: Resource
     name: list-length
     value: 32
@@ -193,34 +209,24 @@
   Policy: System
     name: precision
     value: 6
-  Policy: Cache
-    name: memory-map
-    value: anonymous
-  Policy: Cache
-    name: synchronize
-    value: true
   Policy: Coder
     rights: Write 
-    pattern: {HTTP,HTTPS,MVG,PS,EPS,PDF,XPS}
+    pattern: {HTTP,HTTPS,MVG,PS,PDF}
   Policy: Filter
     rights: None 
     pattern: *
   Policy: Path
     rights: None 
     pattern: @*
+  Policy: System
+    name: font
+    value: ImageMagick-7/arial-unicode.ttf
 
 Path: [built-in]
   Policy: Undefined
     rights: None</pre>
 <p>Notice the <code>shared-secret</code> policy is not listed due to the <code>stealth</code> property.</p>
 
-<p>As of ImageMagick 7.0.6-0, you can programmatically set the ImageMagick security policy with SetMagickSecurityPolicy() (MagickCore) or MagickSetSecurityPolicy() (MagickWand).</p>
-
-<p>As of ImageMagick version 7.0.8-11, you can set a module security policy.  For example, to prevent Postscript or PDF interpretation, use:</p>
-<pre class="highlight"><code>&lt;policy domain="module" rights="none" pattern="{ps,pdf,xps}/></code></pre>
-
-<p>For additional details about resource limits and the policy configuration file, read <a href="resources.html">Resources</a> and <a href="architecture.html">Architecture</a>.</p>
-
 <h2><a class="anchor" id="synchronize"></a>Pixel Cache Synchronize Policy</h2>
 
 <p>When writing image pixels to disk, ImageMagick firsts preallocates the disk file, which is much faster than fully populating the file with zeros.  To further increase performance, we memory-map the file on disk.  With memory-mapping, we get an increase in performance (up to 5x), however, there remains a possibility that as the disk file is populated, it may run out of free space.  The OS then throws a SIGBUS signal which prevents ImageMagick from continuing.  To prevent a SIGBUS, use this security policy:
@@ -277,7 +283,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -285,4 +291,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 21:26 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 17:57 -->
\ No newline at end of file
diff --git a/www/sitemap.html b/www/sitemap.html
index 3a4258e..b2b9d79 100644
--- a/www/sitemap.html
+++ b/www/sitemap.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Sitemap</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -93,7 +93,7 @@
 <h1 class="text-center">ImageMagick Sitemap</h1>
 <p class="text-center"><a href="sitemap.html#overview">Overview</a> • <a href="sitemap.html#download">Download ImageMagick</a> • <a href="sitemap.html#install">Install ImageMagick</a> • <a href="sitemap.html#command-line">Command-line Tools</a> • <a href="sitemap.html#program-interfaces">Program Interfaces</a> • <a href="sitemap.html#formats">Image Formats</a> • <a href="sitemap.html#help">Getting Help</a> • <a href="sitemap.html#support">Support ImageMagick</a> • <a href="sitemap.html#miscellaneous">Miscellaneous Topics</a></p>
 
-<p class="lead magick-description">Use this ImageMagick sitemap to quickly jump to one of the areas of interest listed below.  If you can't find what you want on this page, try our <a href="https://imagemagick.org/script/search.php">site search</a>.</p>
+<p class="lead magick-description">Use this ImageMagick sitemap to quickly jump to one of the areas of interest listed below.  If you can't find what you want on this page, try our <a href="search.html">site search</a>.</p>
 
 <h2><a class="anchor" id="overview"></a>Overview</h2>
 
@@ -206,13 +206,17 @@
 
 <h2><a class="anchor" id="miscellaneous"></a>Miscellaneous Topics</h2>
 
-<div class="table-responsive" style="font-size:87.5% !important;">
+<div class="pre-scrollable table-responsive" style="font-size:87.5% !important;">
 <table class="table table-sm table-hover">
   <tr>
     <td><a href="https://legacy.imagemagick.org/Usage/anim_basics/">Animation</a></td>
     <td>create a GIF animation sequence from a group of images.</td>
   </tr>
   <tr>
+    <td><a href="command-line-options.html#bilateral-blur">Bilateral blur</a></td>
+    <td>non-linear, edge-preserving, and noise-reducing smoothing filter.</td>
+  </tr>
+  <tr>
     <td><a href="color-management.html">Color management</a></td>
     <td>accurate color management with color profiles or in lieu of-- built-in gamma compression or expansion as demanded by the colorspace.</td>
   </tr>
@@ -350,6 +354,7 @@
   </tr>
 </table>
 </div>
+<br/>
 <h2><a class="anchor" id="legacy"></a>ImageMagick Legacy</h2>
 <p>We continue to maintain the legacy release of ImageMagick, version 6, at <a href="https://legacy.imagemagick.org/">https://legacy.imagemagick.org</a></p>
 </div>
@@ -374,7 +379,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -382,4 +387,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:05 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/source/mgk.c b/www/source/mgk.c
index e1fea7d..1f36eba 100644
--- a/www/source/mgk.c
+++ b/www/source/mgk.c
@@ -17,7 +17,7 @@
 %                                 July 1992                                   %
 %                                                                             %
 %                                                                             %
-%  Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization      %
+%  Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization      %
 %  dedicated to making software imaging solutions freely available.           %
 %                                                                             %
 %  You may not use this file except in compliance with the License.  You may  %
diff --git a/www/stream.html b/www/stream.html
index 545e0fa..5e6dc04 100644
--- a/www/stream.html
+++ b/www/stream.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Command-line Tools: Stream</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -113,6 +113,8 @@
 <ul><pre class="highlight"><code>magick stream -map i -storage-type double 'image.tif[100x100+30+40]' gray.raw
 </code></pre></ul>
 
+<p>Streaming requires that the image coder read the image pixels in row order.  Not all formats adhere to this requirement.  Verify a particular image format first, before you utilize streaming in your workflow.</p>
+
 
 <h2><a class="anchor" id="options"></a>Option Summary</h2>
 
@@ -305,7 +307,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -313,3 +315,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/support.html b/www/support.html
index 86013e0..ae0e066 100644
--- a/www/support.html
+++ b/www/support.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - Support ImageMagick Development</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -150,11 +150,11 @@
 <h3>Bitcoin</h3>
 <p>Our Bitcoin Address is: <a href="bitcoin:bc1qd7lckxu36ceupgt4wpnvnug3dr8jcnpqxsla2k?label=ImageMagick%20Donation">bc1qd7lckxu36ceupgt4wpnvnug3dr8jcnpqxsla2k</a>.  Or you can reference the below QR code:</p>
 <ul>
-<dt class="col-md-4"><img src="../images/bitcoin.svg" alt="Click to Donate to ImageMagick via Bitcoin" title="Click to Donate to ImageMagick via Bitcoin" width="300" height="300" /></dt>
+<dt class="col-md-4"><img src="../images/bitcoin.svg" alt="Click to Donate to ImageMagick via Bitcoin" title="Click to Donate to ImageMagick via Bitcoin" width="160" height="160" /></dt>
 </ul>
 </fieldset>
 <br/>
-<p>If you prefer a recurring subscription or if you have any questions about supporting ImageMagick, please <a href="https://imagemagick.org/script/contact.php">contact us</a>.
+<p>If you have any questions about supporting ImageMagick, please <a href="https://imagemagick.org/script/contact.php">contact us</a>.
 </p>
 
 
@@ -179,7 +179,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -187,4 +187,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 22:14 -->
+<!-- Magick Cache 1st January 2021 19:38 -->
\ No newline at end of file
diff --git a/www/webp.html b/www/webp.html
index 7658f7f..82e729d 100644
--- a/www/webp.html
+++ b/www/webp.html
@@ -6,7 +6,7 @@
 <html lang="en">
 <head>
   <meta charset="utf-8"  />
-  <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1,shrink-to-fit=no"  />
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"  />
   <title>ImageMagick - WebP Encoding Options</title>
   <meta name="application-name" content="ImageMagick" />
   <meta name="description" content="Use ImageMagick® to create, edit, compose, and convert bitmap images. Resize an image, crop it, change its shades and colors, add captions, and more." />
@@ -69,7 +69,7 @@
       </li>
     </ul>
     </div>
-    <form class="form-inline my-2 my-md-0" action="https://imagemagick.org/script/search.php">
+    <form class="form-inline my-2 my-md-0" action="search.html">
       <input class="form-control mr-sm-2" type="text" name="q" placeholder="Search" aria-label="Search">
       <button class="btn btn-outline-success my-2 my-sm-0" type="submit" name="sa">Search</button>
     </form>
@@ -225,7 +225,7 @@
     <a href="https://github.com/imagemagick/imagemagick" target="_blank" rel="noopener" aria-label="GitHub"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 499.36" width="2%" height="2%" role="img" focusable="false"><title>GitHub</title><path fill="currentColor" fill-rule="evenodd" d="M256 0C114.64 0 0 114.61 0 256c0 113.09 73.34 209 175.08 242.9 12.8 2.35 17.47-5.56 17.47-12.34 0-6.08-.22-22.18-.35-43.54-71.2 15.49-86.2-34.34-86.2-34.34-11.64-29.57-28.42-37.45-28.42-37.45-23.27-15.84 1.73-15.55 1.73-15.55 25.69 1.81 39.21 26.38 39.21 26.38 22.84 39.12 59.92 27.82 74.5 21.27 2.33-16.54 8.94-27.82 16.25-34.22-56.84-6.43-116.6-28.43-116.6-126.49 0-27.95 10-50.8 26.35-68.69-2.63-6.48-11.42-32.5 2.51-67.75 0 0 21.49-6.88 70.4 26.24a242.65 242.65 0 0 1 128.18 0c48.87-33.13 70.33-26.24 70.33-26.24 14 35.25 5.18 61.27 2.55 67.75 16.41 17.9 26.31 40.75 26.31 68.69 0 98.35-59.85 120-116.88 126.32 9.19 7.9 17.38 23.53 17.38 47.41 0 34.22-.31 61.83-.31 70.23 0 6.85 4.61 14.81 17.6 12.31C438.72 464.97 512 369.08 512 256.02 512 114.62 397.37 0 256 0z"/></svg></a> •
         <a href="https://twitter.com/imagemagick" target="_blank" rel="noopener" aria-label="Twitter"><svg xmlns="http://www.w3.org/2000/svg" class="navbar-nav-svg" viewBox="0 0 512 416.32" width="2%" height="2%" role="img" focusable="false"><title>Twitter</title><path fill="currentColor" d="M160.83 416.32c193.2 0 298.92-160.22 298.92-298.92 0-4.51 0-9-.2-13.52A214 214 0 0 0 512 49.38a212.93 212.93 0 0 1-60.44 16.6 105.7 105.7 0 0 0 46.3-58.19 209 209 0 0 1-66.79 25.37 105.09 105.09 0 0 0-181.73 71.91 116.12 116.12 0 0 0 2.66 24c-87.28-4.3-164.73-46.3-216.56-109.82A105.48 105.48 0 0 0 68 159.6a106.27 106.27 0 0 1-47.53-13.11v1.43a105.28 105.28 0 0 0 84.21 103.06 105.67 105.67 0 0 1-47.33 1.84 105.06 105.06 0 0 0 98.14 72.94A210.72 210.72 0 0 1 25 370.84a202.17 202.17 0 0 1-25-1.43 298.85 298.85 0 0 0 160.83 46.92"/></svg></a>
     <br/>
-    <small>© 1999-2020 ImageMagick Studio LLC</small></p>
+    <small>© 1999-2021 ImageMagick Studio LLC</small></p>
     <div>
   </footer>
 
@@ -233,4 +233,4 @@
   <script>window.jQuery || document.write('<script src="assets/jquery.slim.min.js"><\/script>')</script><script src="assets/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous">
 </body>
 </html>
-<!-- Magick Cache 19th November 2020 20:48 -->
\ No newline at end of file
+<!-- Magick Cache 1st January 2021 16:41 -->
\ No newline at end of file